如何在创建表时将变量用作标识列的种子

时间:2012-03-12 04:22:40

标签: sql sql-server identity-column

我想根据某个变量将该表设置为表的标识列的种子。

例如。类似的东西。

DECLARE @seed INT
SELECT @seed = MAX(id) 
  FROM tblSomeTable

现在,使用@seed,我想为我的新桌子播种。

例如。像这样的东西:

DECLARE @tempTable TABLE (
  ID INT IDENTITY(@seed,1) PRIMARY KEY, DESC NVARCHAR(50)
)

这实际上会抛出错误的语法错误。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

使用完全动态SQL并将种子值嵌入到包含CREATE TABLE语句(或DECLARE ... TABLE语句)的字符串中。大多数DDL语句都不允许使用变量。