我有这段代码,我正在尝试通过变量设置身份种子
DECLARE @iKeyX INT
SELECT @iKeyX = MAX(KeyX) FROM Temporales..tmp_Orders
IF (@iKeyX = NULL)
SET @iKeyX = 1
ELSE
SET @iKeyX = @iKeyX + 1
IF OBJECT_ID('tempdb..#tmp_Orders','U') IS NOT NULL
DROP TABLE #tmp_Orders
SELECT IDENTITY(INT, @iKeyX, 1) AS KeyX,
0 AS Valido,
OrderNumber,
OrderType,
Code,
Size,
INTO #tmp_Orders
FROM TableWithData
为什么 SQL 总是告诉我“'@ iKeyX' 附近的语法不正确”?
最佳答案
这似乎是 old bug在 SQL Server 中,这个问题从未得到修复。要解决该问题(如链接中的建议),请将命令构建为字符串,然后执行该字符串。
链接中的解决方法:
DECLARE @SQL varchar(8000)
DECLARE @myident int
SET @myident = 100
SET @sql = 'SELECT IDENTITY(INT, ' + CAST(@myident as varchar) + ', 1) AS ident INTO #T2'
EXEC(@sql)
SELECT @@identity
关于sql - 具有可变种子的同一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247669/