Stored procedures 为什么可以';t bcp执行具有临时表的程序(#可诱惑)?

Stored procedures 为什么可以';t bcp执行具有临时表的程序(#可诱惑)?,stored-procedures,bcp,sql-server-2008,sql-agent-job,Stored Procedures,Bcp,Sql Server 2008,Sql Agent Job,最近,我的任务是创建一个SQL Server作业,以自动创建CSV文件。现有的代码使用的是各种各样的临时表 当我使用BCP调用现有代码(转换为过程)设置要执行的作业时,我不断收到错误: SQLState = S0002, NativeError = 208 Error = [Microsoft][SQL Native Client][SQL Server]Invalid object name #xyz 如其他帖子所述,为了解决这个问题,很多人建议将所有的#tentable转换为@tableV

最近,我的任务是创建一个SQL Server作业,以自动创建CSV文件。现有的代码使用的是各种各样的临时表

当我使用BCP调用现有代码(转换为过程)设置要执行的作业时,我不断收到错误:

SQLState = S0002, NativeError = 208
Error = [Microsoft][SQL Native Client][SQL Server]Invalid object name #xyz
如其他帖子所述,为了解决这个问题,很多人建议将所有的#tentable转换为@tableVariables

然而,我想理解为什么BCP似乎不能使用#诱惑物? 当我在SSMS中执行相同的过程时,它仍然有效!?为什么?

我在一个过程中使用全局临时表做了一个快速而简单的测试,通过使用BCP的作业似乎成功了,所以我假设它与#诱惑!#的范围有关

提前感谢您的回复/澄清


DTML

您正确地猜测这是#temp表的范围问题

BCP是作为一个单独的进程生成的,因此这些表不再在新进程的范围内。SSM可能使用子进程,因此它们仍然可以访问#temp表