在SQL Server 2005的存储过程中动态创建表分享

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


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

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

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>alter procedure [dbo].[ZXKS_GETSCORE] 
  AS 
  begin transaction 
  –创建临时表,直接命名 
  create table temp_tablename 
  ( 
  id int primary key, 
  da varchar(300), 
  fs int 
  ) 
  declare @count int 
  select @count=@@error 
  if(@count=0) 
  commit transaction 
  else 
  rollback transaction 
  如果要将传入参数作为数据表名的话,就会遇到一个问题:如果表名是数字那么SQL SERVER 2005认不出来,会提示错误。必须将数字的表名前加上非数字的字符。存储过程如下所示:

Code highlighting produced by Actipro CodeHighlighter (freeware)
https://www.CodeHighlighter.com/

–>/*  createtable ’123456’  */ 
alter procedure createtable 
  @xuehao varchar(20) 
  as 
  declare @tablename varchar(20) 
  set @tablename=’temp’+@xuehao 
  exec(’create Table ’+@tablename+’ 
  ( name nvarchar(15), 
  address nvarchar(50) 
  )’) 
  并且将参数作为数据表名的话,创建方法要使用exec方法,使用前面介绍的那个方法行不通

—-想了解更多的linux相关异常处理怎么解决关注<计算机技术网(www.ctvol.com)!!>



本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/uncategorized/50943.html

(0)
上一篇 2020年4月10日
下一篇 2020年4月10日

精彩推荐