我的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
)

解决方案 »

  1.   

    Id int IDENTITY(@cnt,1),  --- 不支持用变量的
      

  2.   

    补充一下:我的目的是 创建临时表时,Id自增序号紧接着已有的表mytable的序号。
      

  3.   

    谢谢邹老大!那再请教一下,象这种select IDENTITY(int,@cnt,1) ... 也不支持变量吗。
      

  4.   

    可以考虑这样整:
    先创建表然后用动态SQL修改表结构
    create table #t(
       Name  varchar(50),
       Type int
    )declare @c intselect @c = 5declare @sqlstr nvarchar(1000)select @sqlstr = 'alter table #t add Id int IDENTITY('+ cast(@c as nvarchar(10)) +',1)'exec sp_executesql @sqlstr
      

  5.   

    将你所有的逻辑,做在一个EXEC('')里好了。
      

  6.   

    如果你用 #t 创建动态临时表等你创建好这个表也就跟着消失了create table #t如果用全局的还可以create table ##t