Dette skyldes, at omfanget af EXEC
erklæring er forskellig fra omfanget af den indeholdende sproc. Det vil sige dit opkald til EXEC
opretter den midlertidige tabel, og derefter slettes den automatisk som scope for EXEC
er Venstre. Du skal grundlæggende gøre det hele inde i en EXEC
erklæring:
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
INSERT INTO #temp ...'
EXEC(@sql)