使用openrowset将Excel文件读入临时表; 我该如何引用该表?

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可以访问存储过程的其余部分?

提前谢谢了!

Cas*_*ams 5

我没时间嘲笑这个,所以我不知道它是否有效,但是试着把你的桌子叫做'## mytemptable'而不是'#mytemptable'

我猜你的问题是你的表在exec()sql字符串后不再在范围内了.可以全局访问以两个磅符号开头的临时表.

完成后别忘了丢掉它!