sqlcmd SQL 返回字符串值作为#name? - 值在 SSMS 中正确显示

Posted

技术标签:

【中文标题】sqlcmd SQL 返回字符串值作为#name? - 值在 SSMS 中正确显示【英文标题】:sqlcmd SQL returning string value as #name? - value is displayed correctly in SSMS 【发布时间】:2018-05-06 07:25:47 【问题描述】:

我有一个简单的 SQL 查询,它从 varchar2 列中提取值。它在 SSMS 中返回正确的值,但是在 sqlcmd 中它返回:“#NAME?” (没有双引号)。

它试图返回的实际值是“-W”(没有双引号)

我运行的代码是:

sqlcmd -S \\servername -d DBNAME -E -Q "select val from tab;"

知道这里有什么问题吗?可能是字符集问题?

软件版本:

SQL Server Management Studio V17.1

sqlcmd 版本 14.0.500.272 NT

【问题讨论】:

您是否可以使用此 sqlcmd 运行任何其他查询?这里可能是 XY 问题。 同意,试试"SELECT val = '- W';" @Jacob:是的,我可以毫无问题地为所有其他记录返回此列值。正是这个特殊的记录给我带来了麻烦。 @AaronBertrand 这成功返回。原来的问题仍然没有乐趣 “此特定记录” - 您正在返回来自 tab 的所有行,您如何将特定行隔离为问题的根源? 【参考方案1】:

抱歉。我在 sqlcmd 与 SSMS 上得到不同答案的原因是因为我连接到不同的数据库。

让我们关闭这个线程,不再谈论这个。

【讨论】:

以上是关于sqlcmd SQL 返回字符串值作为#name? - 值在 SSMS 中正确显示的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PowerShell 和 SQLCMD 获取存储过程返回值?

如何使用sqlcmd在批处理脚本中执行SQL?

使用 SQLCMD 执行发布脚本不返回

使用 ADO .NET 调用 SQL 函数

sqlcmd无法连接数据库

将字段值连接到 SQL Server 中的字符串