I have this code, i’m trying to set the identity seed by a varable
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
Why SQL keeps telling me “Incorrect syntax near ‘@ iKeyX'”?
This appears to be an old bug in SQL Server that has never been fixed. To work around the problem (as suggested in the link), build the command into a string and then execute the string.
Workaround from the link: