我正在使用它,但我不知道为什么它不起作用。除了语法不正确之外,SSMS 不会给我有用的消息:
DECLARE @columnSeed DECIMAL
SELECT @columnSeed = MAX([seeded_column]) + 1 FROM [table] (nolock) WHERE [conditions]
DECLARE @Temp_Table TABLE ([seeded_column] varchar(35) IDENTITY(@columnSeed, 1), [more columns])
我想从一个表中的列中获取最大值,并创建一个临时表变量,其中的标识列以之前的最大值为种子。
编辑:好的,在深入了解动态 SQL 之后,我想我已经有了应该工作的东西,但它仍然不是:
DECLARE @columnSeed DECIMAL
[@columnSeed set properly]
EXECUTE sp_executesql
N'DECLARE @Temp TABLE (seeded_column decimal IDENTITY(@seed, 1) NOT NULL [more columns])',
N'@seed decimal',
@seed = @columnSeed;
我现在得到的所有信息是我在“@seed”附近的语法不正确