2012-05-03 36 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