2011-09-09 73 views
0

我想從表寫入輸出文本文件。我沒有收到任何錯誤,但文件沒有創建。使用tsql從表中寫入文本

EXEC master..xp_cmdshell 'bcp "SELECT * FROM DB.dbo.table1" queryout "C:\employee.txt" -T -Sservername -U user111 -P pwd -c -t,' 

沒有文件創建,我不知道爲什麼。任何人都可以幫忙嗎?

,我沒有得到的錯誤,而不是我得到以下信息:

usage: bcp {dbtable | query} {in | out | queryout | format} datafile 
[-m maxerrors]   [-f formatfile]   [-e errfile] 
[-n native type]   [-c character type]  [-w wide character type] 
[-N keep non-text native] [-V file format version] [-q quoted identifier] 
    [-C code page specifier] [-t field terminator] [-r row terminator] 



[-i inputfile]   [-o outfile]    [-a packetsize] 

[-S server name]   [-U username]   [-P password] 
[-T trusted connection] [-v version]    [-R regional enable] 
[-k keep null values]  [-E keep identity values] 
    NULL 

我運行它在服務器A,但在數據庫服務器B等服務器AI使用SQL Server Management Studio中,給服務器B詳細信息登錄。之後,我寫了上面提到的查詢。所以文件將在哪個服務器上形成?

+0

這實際上對我來說工作,儘管最後明顯的逗號和你指定'T'並傳入用戶名和密碼的事實。你在什麼版本上? –

+0

我已經刪除了逗號,最後還刪除了用戶名和密碼。但仍然沒有運氣 – CPDS

回答

0

查詢是正確的 -

EXEC master..xp_cmdshell 'bcp "SELECT * FROM DB.dbo.table1" queryout "C:\employee.txt" 

-Sservername -U user111 -P PWD -c -t,」

而在SQL Server Management Studio中鍵入我按下輸入queryout經過這麼聲明「C:\ employee.txt」-Sservername -U user111 -P pwd -c -t,'即將進入下一行。 因爲這我沒有得到任何錯誤或

0

即使在用戶名和密碼之後有或沒有空格的情況下都可以使用。你有寫訪問權限在服務器上的C:\?如果你還使用-T,你需要用戶名還是通過?

+0

我在服務器A上運行它,但數據庫在服務器B上。所以在服務器A上,我使用SQL SERVER管理工作室並給服務器B的詳細信息登錄。之後,我寫了上面提到的查詢。所以文件將在哪個服務器上形成? – CPDS

+0

在服務器上執行語句,服務器A – Mike

+0

查詢正確 - EXEC master..xp_cmdshell'bcp「SELECT * FROM DB.dbo.table1」queryout「C:\ employee.txt」 -Sservername -U user111 -P pwd -c -t,' 在SQL SERVER MANAGEMENT studio中輸入時我在查詢輸出後按回車,因此語句「C:\ employee.txt」-Sservername -U user111 -P pwd -c -t'進入下一行。 因爲這我沒有得到任何錯誤或輸出文件。 – CPDS

0

MSDN

安全注意

BCP實用程序使用集成安全性連接到SQL Server使用受信任的連接,使用-T選項(受信任的連接)instead of the user name密碼組合。