WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院数据库MSSQL Server 在存储过程中动态创建表 阅读

在存储过程中动态创建表

 2008-09-04 10:02:20 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劖顐煎☉妯锋瀻闁归偊鍓涘▔姘舵⒑閸涘⿴娈旀繛灞傚妼閳绘捇骞嬪┑鎰濡炪倖姊婚崢褏鎲撮敓锟�
核心提示:在尝试做在线考试系统的过程中,为了管理每个学生的考试信息,在存储过程中动态创建表,就考虑为每个学生创建以学号命名的临时数据表, 在存储过程中动态创建表如果不使用参数的话很好创建,存储过程如下所示:/*createtable’123456’*/alterprocedurecreatetable@x

在尝试做在线考试系统的过程中,为了管理每个学生的考试信息,就考虑为每个学生创建以学号命名的临时数据表。

在存储过程中动态创建表如果不使用参数的话很好创建。方法如下:

alterprocedure[dbo].[ZXKS_GETSCORE] 
  AS 
  begintransaction 
  --创建临时表,直接命名 
  createtabletemp_tablename 
  ( 
  idintprimarykey, 
  davarchar(300), 
  fsint 
  ) 
  declare@countint 
  select@count=@@error 
  if(@count=0) 
  committransaction 
  else 
  rollbacktransaction

如果要将传入参数作为数据表名的话,就会遇到一个问题:如果表名是数字那么SQL SERVER 2005认不出来,会提示错误。必须将数字的表名前加上非数字的字符。存储过程如下所示:

/* 
  createtable’123456’ 
  */
  
alterprocedurecreatetable 
  @xuehaovarchar(20) 
  as 
  declare@tablenamevarchar(20) 
  set@tablename=’temp’+@xuehao 
  exec(’createTable’+@tablename+’ 
  (namenvarchar(15), 
  addressnvarchar(50) 
  )’)

并且将参数作为数据表名的话,创建方法要使用exec方法,使用前面介绍的那个方法行不通。

Tags:存储 过程 动态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接