bcp不会输出临时表

cup*_*ldR 5 sql bcp

我有一个存储过程存储临时表中的值.

这一切都运作良好,但我不能用它

exec master..xp_cmdshell 'bcp "exec sp_test '2006-07-21' " queryout c:\test.txt -c '
Run Code Online (Sandbox Code Playgroud)

如果我将表更改为常规表,那么一切正常.你不能用这种方式使用临时表吗?

我不一定要分享代码,因为它包含公司的东西,但它基本上是这样的

SELECT 
* 
INTO #Extractr
FROM 
TABLE A
WHERE ID in (4,9,14)
Run Code Online (Sandbox Code Playgroud)

错误消息是 invalid object #Extractr

谢谢!

Ale*_*abó 5

我几天前偶然发现了这件事.

我从这个链接中学到了什么:

http://www.dbforums.com/microsoft-sql-server/1605565-can-we-have-temporary-table-store-procedure-when-using-bcp.html

是因为它们不在你正在使用的tempdb数据库中,所以它不会看到临时表.

此外,我通过将本地临时表替换为全局临时表来完成我的工作(##而不是#,简单的替换帮助了我).

正如@Kevin在评论中提到的,您也可以使用表变量来实现相同的目的.

希望这对你有用.