ऐसा इसलिए है क्योंकि EXEC
. का दायरा स्टेटमेंट युक्त स्पोक के दायरे से अलग है। यानी, EXEC
पर आपका कॉल अस्थायी तालिका बना रहा है, और फिर इसे EXEC
. के दायरे के रूप में स्वचालित रूप से हटा दिया जा रहा है शेष है। आपको मूल रूप से एक . के अंदर बहुत कुछ करना है EXEC
कथन:
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT * INTO #temp
FROM ' + @PKSchema + '.dbo.' + @PKTableName + ' WHERE 1<>1
INSERT INTO #temp ...'
EXEC(@sql)