为什么创建表时用临时变量就不行!
我的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