Dzieje się tak, ponieważ zakres EXEC
instrukcja różni się od zakresu zawierającego sproc. To znaczy, twoje wywołanie EXEC
tworzy tabelę tymczasową, a następnie jest automatycznie usuwana jako zakres dla EXEC
pozostało. Zasadniczo musisz zrobić wszystko wewnątrz jednego EXEC
oświadczenie:
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
INSERT INTO #temp ...'
EXEC(@sql)