在一个循环中,我应该改变:
SELECT * INTO #copiaTabella FROM #TABELLA WHERE 1 = 2
动态
EXECUTE('SELECT * INTO #copiaTabella FROM ' + @sNomeTabella_APPO + ' WHERE 1 = 2')
所以它不起作用。有没有办法做到这一点? 谢谢
答案 0 :(得分:0)
您应该知道,在外部作用域中看不到在动态T-SQL语句中创建的临时对象。例如,以下内容将引发错误:
EXECUTE sp_executesql N'CREATE TABLE #TEST ([a] INT);'
SELECT *
FROM #TEST;
消息208,级别16,状态0,行3无效的对象名称'#TEST'。
如果每次都需要创建不同的表结构,则必须在动态T-SQL语句中包含其余的T-SQL操作。