sqlcmd - SQL 关键字的 SQLCMD 问题
问题描述
我有一个几乎可以像我想要的那样工作的 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
但是,一旦我将 REPLACE 或 TRIM 之类的关键字添加到 SQL 语句中,或者即使我使用 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 是有效的。
解决方案
我通过在我的 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 是否会帮助我找到可能有帮助的转义字符。
推荐阅读
- php - 警告:preg_replace():不再支持 /e 修饰符我该如何修复它
- css - 如何在反应js材料ui中为抽屉制作填充
- angular - 角度谷歌图表中的vAxis单线标签
- c# - 避免在构造函数中重复类型名(类)
- python - 在 gensim LdaMulticore 中显示进度
- c# - System.AccessViolationException:当 ODBCCommand 中有 @ 时,试图读取或写入受保护的内存
- android - 如何在任何列表视图项目中间添加卡片 - 颤动?
- android - 根据某个值设置 ImageView 的位置
- angular - 错误类型错误:您在预期流的位置提供了“null”。您可以提供 Observable、Promise、Array 或 Iterable
- python - Geopandas,matplotlib中缺失值的问题