Bcp

xp_cmdshell bcp 不會保存文件

  • August 26, 2012
EXEC xp_cmdshell 'bcp "SELECT lastconnectip FROM RF_USER.dbo.tbl_UserAccount" queryout "C:\test.txt" -T -c' 

上面的命令執行,輸出:

NULL
Starting copy...
1000 rows successfully bulk-copied to host-file. Total received: 1000
NULL
1158 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 1      Average : (1158000.00 rows per sec.)
NULL

但實際上沒有寫入文件。我錯過了什麼?使用者確實擁有 SQL 2008 R2 的完全權限 (sysadmin)。

在 sql 查詢/觸發器中使用 NETSH 的另一種方法也可以代替上述方法。

您可能會在客戶端電腦上查找該文件。xp_cmdshell在伺服器上執行,所以C:\test.txt在 SQL Server 機器上查找。

對於系統管理員,xp_cmdshell將命令作為 SQL 數據庫引擎服務帳戶執行。

確保該帳戶已被授予目標位置的寫入權限。

引用自:https://dba.stackexchange.com/questions/23134