我正在尝试使用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很沮丧而且没有结果。任何帮助将不胜感激!
答案 0 :(得分: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'