2015-11-12 96 views
0

我正在使用xp_cmdshell,我希望輸出到文本文件以分號分隔。我已測試以下內容:xp_cmdshell分號分隔

-- To allow advanced options to be changed. 
EXEC sp_configure 'show advanced options', 1; 
GO 
-- To update the currently configured value for advanced options. 
RECONFIGURE; 
GO 
-- To enable the feature. 
EXEC sp_configure 'xp_cmdshell', 1; -- 1 for at enable 
GO 
-- To update the currently configured value for this feature. 
RECONFIGURE; 
GO 

-- Extracting information from the database 
EXEC xp_cmdshell 'bcp "SELECT TcpIpAddress FROM [SIT-DVH].[dbo].[Preb_Idera]" queryout "C:\Output\Ip_outputSemi.txt" -T -c -t;' 


-- To allow advanced options to be changed. 
EXEC sp_configure 'show advanced options', 1; 
GO 
-- To update the currently configured value for advanced options. 
RECONFIGURE; 
GO 
-- To disable the feature. 
EXEC sp_configure 'xp_cmdshell', 0; -- 0 for at disable 
GO 
-- To update the currently configured value for this feature. 
RECONFIGURE; 
GO 

我已經看過好幾個地方說過,設置-t;應使輸出被分號分隔,但輸出仍然是:

XXXX YYYY ZZZZ

+0

你確定你正在檢查在正確的位置正確的文件?首先刪除文件,只是爲了確保。除了在兩者之間增加一個空白區域,即'-t; ',不知道還有什麼問題可以解決。 – Greg

+0

我刪除了舊文件,我嘗試過使用空格,並且在-t仍然是相同的結果之間沒有空格。 – Santelices

+0

好吧,沒有限定的原因是因爲您正在選擇一個列。你在repro上有什麼不符合你的輸出。 – Greg

回答

0

我發現瞭解決方案,因爲作爲隨後的輸出:

xxx 
zzz 
yyy 

我需要改變-t; to -r;因爲我只有每行一個字段和[-r row_term],輸出爲如下:

XXX,ZZZ; YYY