Ini karena cakupan EXEC
pernyataan berbeda dengan ruang lingkup sproc yang mengandung. Yaitu, panggilan Anda ke EXEC
sedang membuat tabel sementara, dan kemudian secara otomatis dihapus sebagai ruang lingkup untuk EXEC
tersisa. Pada dasarnya Anda harus melakukan banyak hal di dalam satu EXEC
pernyataan:
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
INSERT INTO #temp ...'
EXEC(@sql)