Sql server 2008 通过触发器执行时BCP挂起

Sql server 2008 通过触发器执行时BCP挂起,sql-server-2008,bcp,xp-cmdshell,Sql Server 2008,Bcp,Xp Cmdshell,当我执行这个命令时,它工作了 DECLARE @CMD NVARCHAR(1000) SET @CMD = 'cd.. && "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" "SELECT TOP 1 CODE FROM[TABLE] WITH (NOLOCK) ORDER BY ID DESC" queryout "\\FOLDER\FOLDER\FILE.txt" -T -c -S "[SERVE

当我执行这个命令时,它工作了

DECLARE @CMD NVARCHAR(1000) 
SET @CMD = 'cd.. && "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" "SELECT TOP 1 CODE FROM[TABLE] WITH (NOLOCK) ORDER BY ID DESC" queryout "\\FOLDER\FOLDER\FILE.txt" -T -c -S "[SERVERNAME]"'
EXEC master..XP_CMDSHELL @CMD
但是,如果我从触发器执行,它将挂起!我必须重新启动服务

ALTER TRIGGER [TRIGGER] on [TABLE] after INSERT AS BEGIN
DECLARE @CMD NVARCHAR(1000) 
SET @CMD = 'cd.. && "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" "SELECT TOP 1 CODE FROM[TABLE] WITH (NOLOCK) ORDER BY ID DESC" queryout "\\FOLDER\FOLDER\FILE.txt" -T -c -S "[SERVERNAME]"'
EXEC master..XP_CMDSHELL @CMD END

有人知道为什么???

在处理试图插入的同一个表中的触发器时,您很可能在试图从
bcp
访问该表时陷入死锁


可以这样想:触发器等待bcp,即等待释放表上的锁,但该锁一直保持到触发器之后

在处理试图插入的同一个表中的触发器时,您很可能处于死锁状态,试图从
bcp
访问该表


可以这样想:触发器等待bcp,即等待释放表上的锁,但该锁一直保持到触发器之后

xp\u cmdshell
仅具有SQL服务帐户的权限。它是否具有指定路径的权限。另外,您为什么要使用
cd..
xp\u cmdshell
仅具有SQL服务帐户的权限。它是否具有指定路径的权限。还有,你为什么要做
cd..
?触发器的作用是在表中插入数据后,用bcp从表中导出特定数据,所以我想用这种方式,你知道我怎么做吗?或者我需要添加一些函数或其他有用的东西吗?请以另一个问题的形式发布触发器的端口在表上插入数据后正在使用bcp从表中导出特定数据,所以我想这样做,你知道我怎么做吗?或者我需要添加一些功能或者其他一些有用的东西吗?请以另一个问题的形式发布