首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

为什么创建表时用临时变量就不行!该怎么解决

2012-01-19 
为什么创建表时用临时变量就不行!我的sql语句如下,总是说在IdintIDENTITY(@cnt,1),@cnt附近有错误,如果将@

为什么创建表时用临时变量就不行!
我的sql语句如下,总是说在Id   int   IDENTITY(@cnt,1),   @cnt附近有错误,如果将@cnt换成常量就好了。请各位大虾指教....
declare   @cnt   int(4)
set   @cnt   =   IDENT_CURRENT( 'mytable ')+1
create   table   #t(
      Id   int   IDENTITY(@cnt,1),
      Name     varchar(50),
      Type   int
)

[解决办法]
Id int IDENTITY(@cnt,1), --- 不支持用变量的
[解决办法]
可以考虑这样整:
先创建表然后用动态SQL修改表结构


create table #t(
Name varchar(50),
Type int
)

declare @c int

select @c = 5

declare @sqlstr nvarchar(1000)

select @sqlstr = 'alter table #t add Id int IDENTITY( '+ cast(@c as nvarchar(10)) + ',1) '

exec sp_executesql @sqlstr
[解决办法]
将你所有的逻辑,做在一个EXEC( ' ')里好了。
[解决办法]
如果你用 #t 创建动态临时表等你创建好这个表也就跟着消失了

create table #t

如果用全局的还可以

create table ##t

热点排行