程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 在存儲過程中動態創建表

在存儲過程中動態創建表

編輯:關於SqlServer

在嘗試做在線考試系統的過程中,為了管理每個學生的考試信息,就考慮為每個學生創建以學號命名的臨時數據表。

在存儲過程中動態創建表如果不使用參數的話很好創建。方法如下:

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認不出來,會提示錯誤。必須將數字的表名前加上非數字的字符。存儲過程如下所示:

/*
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方法,使用前面介紹的那個方法行不通。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved