0

我正在尝试使用 SQL 命令创建一个 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

1 回答 1

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' 
于 2012-05-03T21:45:26.277 回答