2012-05-03 68 views
0

我正在嘗試使用SQL命令創建csv。我正在使用一張簡單的表格作爲測試。我到目前爲止已經寫了這個:使用sqlcmd創建csv

DECLARE @sql VARCHAR(1000), 
     @cmd VARCHAR(100), 
     @sqlCommand VARCHAR(1000) 

Set @cmd = 'Select * From DSG.Pawtucket.counts' 

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '" 
-s "|" -o <network path> -h-1' 

EXEC master.dbo.xp_cmdshell @sqlCommand 

我看到在「結果」選項卡中的查詢結果,我收到任何錯誤,但從未創建我的文件。我知道我正在使用有效的網絡路徑。我甚至嘗試在SQL服務器本地C:驅動器上創建文件,但沒有成功。我也嘗試過用很多挫敗感和沒有結果的bcp。任何幫助將不勝感激!

回答

4

得到的文本字符串

你寫什麼

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '" 
-s "|" -o <network path> -h-1' 

發送兩個命令對xp_cmdshell擺脫換行符

的第一個命令,讓你的結果從@cmd在結果選項卡。

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"  

然後這裏面什麼也不做

-s "|" -o <network path> -h-1' 

下面是你想要的。除了去掉回車我還添加了後「」的空間,因爲-s需要從無論是在@cmd

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd 
+ '" -s "|" -o <network path> -h-1' 
+1

感謝分離,這是它!現在我只是得修補那個巨大的坑我我真的很感謝,我應該能夠弄清楚這一點,但我已經非常沮喪,以至於一雙新鮮的眼睛真的有了幫助。 – cloud311