全部,我想根据从另一个表获得的当前最大值开始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/