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

10-12 19:52