【发布时间】:2026-01-15 01:50:01
【问题描述】:
很抱歉这个琐碎的问题,但是...
我在尝试使用调用命令在 PowerShell 中执行 SQL 命令时遇到问题
当我尝试将字符串添加到 SQL 命令时,问题就开始了:
$sqlNAVresutl = Invoke-SQLCMD -Query 'SELECT *
FROM [dbo].[DBO name]
WHERE [dbo].[Job Queue Entry].Status = 2 AND [dbo].[$Job Queue Entry].[Object ID to Run] = 52063060 AND [dbo].[$Job Queue Entry].[User ID] = 'Domain\Account'
GO
'
-ServerInstance "Server name" -Database "dbo name"
当我将Domain\Account 添加到代码中时,问题就开始了。它适用于 SQL,但不适用于 PowerShell,因为整个查询用单引号 (' ')。
如何读取单引号内的字符串?
【问题讨论】:
-
使用双单引号:` = ''Domain\Account''`。
-
我收到错误 Invoke-SQLCMD : Invalid column name 'Domain\Account'。
-
对于多行 SQL,您通常最好使用这里字符串 (
@" .... "@),这样您就不必担心转义($除外,如果它可以启动一个变量名称,因为它仍然会被插值——如果你真的需要在查询中使用文字$,你可以使用`$来逃避它。 -
@AjeetVerma 请为实际的 code 保留代码格式(使用反引号),不要将其用于强调或围绕首字母缩略词。您建议的许多编辑都误用了这种格式。具有讽刺意味的是,对于适合反引号的一种用途,您改为使用
**强调。看看我对这个问题的编辑,看看我的意思。
标签: sql powershell invoke-sqlcmd