2012-05-10 136 views
1

在为数据导入编写一些SQL语句时遇到错误。必须声明表变量

因为我在做数据端口,我需要声明一些临时表变量。

我在文件的开头声明了一个表变量,并对表变量执行了一些操作(while循环,插入和更新)。后来在另一个while循环脚本的中间,如果我访问此表变量中的脚本解析得到下述错误

必须声明表变量@temptable

感谢你的帮助。

+3

是那里的脚本文件中的GO语句?我相信抹去变数 –

+0

不,我没有放置任何Go。 – Brainchild

+0

它是一个单一的脚本?你可以发布脚本或某种形式的淡化版本的脚本吗? –

回答

9

如果先前声明的变量在已执行的SQL代码块中不再可用,则很可能调用了GO语句。

根据MSDN的规定,“局部变量的范围是它声明的批处理。”。

Go语句“将一批Transact-SQL语句的末尾指示给SQL Server实用程序。”

建议仔细检查您的SQL代码是否有任何错误的GO语句。

参考文献:

DECLARE @local_variable(的Transact-SQL) http://msdn.microsoft.com/en-us/library/ms188927.aspx

GO(的Transact-SQL) http://msdn.microsoft.com/en-us/library/ms188037.aspx