这个 create table 怎样写才可以呀?(10分)

  • 主题发起人 主题发起人 tt123tt
  • 开始时间 开始时间
T

tt123tt

Unregistered / Unconfirmed
GUEST, unregistred user!
我要建9个kkk1,kkk2.....kkk9 表
DECLARE @ss char(6)
DECLARE @aa int
set @aa=0
set @ss=''
ttgo:
set @aa=@aa+1
set @ss='kkk'+CAST(@aa AS char(1))
/*set @ss='zx'+@aa*/
print @ss

CREATE TABLE @ss (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[信息来源] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[标题] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[内容] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[日期] [smalldatetime] NULL ,
[date] [smalldatetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

if @aa < 9 goto ttgo
但总提示错如下:
服务器: 消息 170,级别 15,状态 1,行 12
第 12 行: '@ss' 附近有语法错误。(就是 create table @ss ...)
这应该怎样改才可以呀?


 
EXEC (@SQLText),其中@SQLText为Create语句字符串
 
把create table的sql语句都写成字符串形式,

delcare @strSQL varchar(2000)
set @strSQL = 'CREATE TABLE ' + @ss ' = ([ID] [int] IDENTITY (1, 1) NOT NULL ,
[信息来源] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[标题] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[内容] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,
[日期] [smalldatetime] NULL ,
[date] [smalldatetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]'

EXECSQL(@strSQL)
 
To: bluerain
你写的 EXECSQL(@strSQL) 出错应改为 EXEC(@strSQL)才可以执行。多谢!

 
后退
顶部