全部,我要开始编号IDENTITY
字段基于从另一个表获得的当前最大值。所以我尝试了以下内容
DECLARE @CurrentES INT;
SET @CurrentES = (SELECT MaxES
FROM [NDB]..[TmpMaxES]) + 1;
ALTER TABLE BA
ADD ES INT IDENTITY(@CurrentES, 1);
但这不会接受变量作为 IDENTITY 中的种子值。怎样才能达到我的要求?
谢谢你的时间。
最佳答案
做这个和其他非变量允许的任务,可以使用EXEC函数,如下:
DECLARE @CurrentES INT;
SET @CurrentES = (SELECT MaxES
FROM [NDB]..[TmpMaxES]) + 1;
DECLARE @Statement VARCHAR(200)
SET @Statement = 'ALTER TABLE BA
ADD ES INT IDENTITY(' + CAST(@CurrentES AS VARCHAR) + ', 1);'
EXEC (@Statement)
关于sql-server-2008 - SQL 使用变量设置 IDENTITY 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629926/