调用Invoke-Sqlcmd时获取异常

时间:2014-12-01 17:31:22

标签: powershell

我在名为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脚本可用的等效参数。

我需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

当我从SQL文件中删除单引号时,一切正常。它似乎与命令提示符sqlcmd.exe不同。