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:存储 过程 动态

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