Това е така, защото обхватът на EXEC
израз е различен от обхвата на съдържащия sproc. Това е вашето обаждане до EXEC
създава временната таблица и след това тя автоматично се премахва като обхват за EXEC
е ляво. По принцип трябва да направите всичко вътре в едно EXEC
изявление:
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
INSERT INTO #temp ...'
EXEC(@sql)