mat*_*ler 2 sql-server temp-tables openrowset
我正在尝试编写一个存储过程,将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)
Run Code Online (Sandbox Code Playgroud)
这似乎有用.
但是,如果我尝试这样的事情:
Select * from #mytemptable
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
无效的对象名称'#mytemptable'
为什么#mytemptable不被认可?有没有办法让#mytemptable可以访问存储过程的其余部分?
提前谢谢了!
我没时间嘲笑这个,所以我不知道它是否有效,但是试着把你的桌子叫做'## mytemptable'而不是'#mytemptable'
我猜你的问题是你的表在exec()sql字符串后不再在范围内了.可以全局访问以两个磅符号开头的临时表.
完成后别忘了丢掉它!