Dies liegt daran, dass der Umfang der EXEC
-Anweisung unterscheidet sich vom Geltungsbereich des enthaltenden Sproc. Das heißt, Ihr Aufruf von EXEC
erstellt die temporäre Tabelle und wird dann automatisch als Bereich für EXEC
gelöscht ist übrig. Sie müssen im Grunde alles innerhalb des Einen erledigen EXEC
Aussage:
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
INSERT INTO #temp ...'
EXEC(@sql)