【发布时间】:2017-07-29 11:54:47
【问题描述】:
当我执行这个命令时,它起作用了!
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
有人知道为什么吗??
【问题讨论】:
-
xp_cmdshell仅具有 SQL 服务帐户的权限。它是否具有指定路径的权限。还有,你为什么要cd..?
标签: sql-server-2008 bcp xp-cmdshell