我正在尝试编写一个存储过程,它将 Excel 文件读入临时表,然后处理该表中的一些数据,然后将该表中选定的行插入到永久表中。
所以,它是这样开始的:
SET @SQL = "select * into #mytemptable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database="+@file+";HDR=YES', 'SELECT * FROM [Sheet1$]')"
EXEC (@SQL)
这么多似乎有效。
但是,如果我尝试这样的事情:
Select * from #mytemptable
我收到错误:
无效的对象名称“#mytemptable”
为什么#mytemptable 未被识别?有没有办法让存储过程的其余部分可以访问#mytemptable?
提前谢谢了!
我没有时间模拟这个,所以我不知道它是否有效,但尝试将你的表命名为“##mytemptable”而不是“#mytemptable”
我猜你的问题是在 exec() sql 字符串之后你的表不再在范围内。前面带有两个井号符号的临时表可以全局访问。
用完后别忘了把它扔掉!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)