读书人

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

发布时间: 2012-01-19 00:22:27 作者: rapoo

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

读书人网 >SQL Server

热点推荐