在 PowerShell 中使用 Invoke-Sqlcmd 时,在 SQL 查询中保留注释文本?
Keep commented text in SQL query when using Invoke-Sqlcmd in PowerShell?
例如,我有以下 SQL 我想在 PowerShell 中 运行 的查询:
select
item1, --this is a comment
item2
from myTable
如果我尝试 运行 使用 Invoke-Sqlcmd 在 PowerShell 中执行此查询,我会收到语法错误,因为它无法将评论解析为评论:
Invoke-Sqlcmd -Query 'select item1, --this is a comment item2 from myTable'
有没有办法保留我的查询评论?
您是否尝试过使用 PowerShell here-strings?例如:
Invoke-SqlCmd -Query @"
select
item1, --this is a comment
item2
from myTable
"@
您的第一个示例是多行查询,如果您删除注释文本,则它等同于:
select
item1,
item2
from myTable
但是您的第二个示例全部在一行中,相当于:
select item1,
无效 sql,因此出现错误。
您可以使用 "here strings":
使其成为有效的多行查询
Invoke-SqlCmd -Query @"
select
item1, --this is a comment
item2
from myTable
"@
或自己在第二个版本中插入换行符 (`r`n
):
Invoke-Sqlcmd -Query 'select`r`n item1, --this is a comment`r`n item2`r`n from myTable'
Here-strings 显然比转义换行符更漂亮,但您可以选择...
如果你不想使用, you can use block comment syntax:
Invoke-Sqlcmd -Query 'select item1, /*this is a comment*/ item2 from myTable'
您不需要使用 or a block comment syntax。
只需引用查询就足以保留新行:
Invoke-SqlCmd -Query '
select
item1, --this is a comment
item2
from myTable
'
注意:为此建议use single quoted (here)strings,因为它们几乎是双引号(此处)字符串的两倍。
例如,我有以下 SQL 我想在 PowerShell 中 运行 的查询:
select
item1, --this is a comment
item2
from myTable
如果我尝试 运行 使用 Invoke-Sqlcmd 在 PowerShell 中执行此查询,我会收到语法错误,因为它无法将评论解析为评论:
Invoke-Sqlcmd -Query 'select item1, --this is a comment item2 from myTable'
有没有办法保留我的查询评论?
您是否尝试过使用 PowerShell here-strings?例如:
Invoke-SqlCmd -Query @"
select
item1, --this is a comment
item2
from myTable
"@
您的第一个示例是多行查询,如果您删除注释文本,则它等同于:
select
item1,
item2
from myTable
但是您的第二个示例全部在一行中,相当于:
select item1,
无效 sql,因此出现错误。
您可以使用 "here strings":
使其成为有效的多行查询Invoke-SqlCmd -Query @"
select
item1, --this is a comment
item2
from myTable
"@
或自己在第二个版本中插入换行符 (`r`n
):
Invoke-Sqlcmd -Query 'select`r`n item1, --this is a comment`r`n item2`r`n from myTable'
Here-strings 显然比转义换行符更漂亮,但您可以选择...
如果你不想使用
Invoke-Sqlcmd -Query 'select item1, /*this is a comment*/ item2 from myTable'
您不需要使用
只需引用查询就足以保留新行:
Invoke-SqlCmd -Query '
select
item1, --this is a comment
item2
from myTable
'
注意:为此建议use single quoted (here)strings,因为它们几乎是双引号(此处)字符串的两倍。