2016-06-15 45 views
0

我正嘗試導出文本文件,這個指令......試圖保存一個txt文件,BCP本地SQL Server上創建

DECLARE @selectText VARCHAR(999) 
DECLARE @output INT 
DECLARE @result INT 

EXEC @output = master.dbo.xp_fileexist 'DIR "C:\TextoPlano\" /B', @result OUTPUT 

print @output 


IF @output = 1 
     PRINT 'File Donot exists'--CREATE THE DIRECTORY 
ELSE 
BEGIN 
     PRINT 'File exists' 
     SELECT @selectText = 'bcp "SELECT * FROM [pruebaBD].[dbo].[Cliente]" queryout "C:\TextoPlano\ViewOrdenCompra.txt" -c -S xxxxxxx -U sa -P xxxxxx' 
     PRINT @selectText 
     EXEC master..xp_cmdshell @selectText 
END 

...但SQL Server表明我這個

  • SQLSTATE = S1000,NativeError = 0,...

  • 錯誤= [微軟] [SQL Server本機客戶端10.0]無法打開BCP主數據-FIL

當執行此

EXEC master..xp_cmdshell '主機'

出現在我的SqlServer的名字,所有的文件保存在C:\ SQLSERVER

我怎麼做,以節省安裝SQL Server的本地計算機?

例如:我的電腦C:\ TextoPlano

+0

由於要連接到服務器後運行'bcp'作爲一個動態語句,它會被執行* *在服務器上。您可以嘗試共享您的本地驅動器並將其映射到服務器,然後嘗試寫入。 – vmachan

+0

您是否使用SP_CONFIGURE啓用了XP_CMDSHELL? – terrybozzio

+0

是的! terrybozzio我做到了!啓用XP_CMDSHELL – ger

回答

0
  1. 啓用XP_CMDSHELL

    - 允許高級選項進行更改。
    EXEC sp_configure'show advanced options',1;
    GO
    - 更新高級選項的當前配置值。
    RECONFIGURE;
    GO
    - 啓用該功能。
    EXEC sp_configure'xp_cmdshell',1;
    GO
    - 更新此功能的當前配置值。
    RECONFIGURE;
    GO

  2. 驗證,如果指定的路徑下
  3. 確認你有寫權限寫的目錄?
  4. 確認SQL Server服務帳戶是否有權寫入目錄?

感謝

相關問題