我在名为Test.sql的文件中有以下内容:
SELECT '$(Val1)' AS [Value 1], '$(Val2)' AS [Value 2]
我正在尝试在pwershell提示符下运行以下命令:
Invoke-Sqlcmd -ServerInstance '.\SQLExpress' -Variable @("Val1='Test'","Val2='Test2'") -InputFile ".\SQL\Test.sql"
我收到错误:
Invoke-Sqlcmd:''附近的语法不正确。在行:1个字符:1 + Invoke-Sqlcmd -ServerInstance'。\ SQLExpress'-Variable @(“Val1 ='Test'”,“Val2 ='Te ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [Invoke-Sqlcmd],SqlPowerShellSqlExecutionException + FullyQualifiedErrorId:SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
如果我将Test.sql中的SQL替换为:
SELECT @@VERSION
powershell命令行有效,所以我认为问题在于sql文件本身。
如果我从dos提示符运行sqlcmd.exe,提供我的sql脚本可用的等效参数。
我需要做些什么才能让它发挥作用?
答案 0 :(得分:0)
当我从SQL文件中删除单引号时,一切正常。它似乎与命令提示符sqlcmd.exe不同。