我有一个SQLCMD,几乎可以像我想要的那样工作:
SQLCMD -s"," -S servername -U username -d databasename -W -o
"mydatafile.csv” -Q "SET NOCOUNT ON
SELECT Account,'""' + cast ([ColDescription] as
nvarchar(100)) + '""' as ColumnDescription" FROM myTable
但是,一旦我在SQL语句中添加了REPLACE或TRIM之类的关键字,或者即使我使用了CASE语句,我也会得到'Unexpected Argument -press?从CMD寻求帮助
SQLCMD -s"," -S servername -U username -d databasename -W -o
"mydatafile.csv” -Q "SET NOCOUNT ON
SELECT Account,'""' + REPLACE(cast ([ColDescription] as nvarchar(100)),'"','""') + '""' as
ColumnDescription" FROM myTable
是因为我尝试使用的SQL中的所有内容恰好也是CMD中的关键字吗?或者,我只是错过了很大的东西吗? SQL查询本身可以正常工作,并在SSMS中返回我的预期结果集,所以我知道SQL有效。
答案 0 :(得分:0)
我在SQL中使用QUOTENAME函数找到了解决问题的方法,如下所示:
SQLCMD -s"," -S servername -U username -d databasename -W -o
"mydatafile.csv” -Q "SET NOCOUNT ON
SELECT Account, QUOTENAME(cast ([ColDescription] as nvarchar(100)),'""') as
ColumnDescription" FROM myTable
在QUOTENAME函数中使用2个双引号字符的地方。但是,我仍然会对其他答复感兴趣,他们可以进一步确认/告诉我为什么我使用CASE,REPLACE等的其他解决方案在CMD中不起作用。我仍然认为这些也应该起作用...或者是否更多地了解CMD可以帮助我找到可能有所帮助的转义字符。