2014-12-01 36 views
0

我曾在一個名爲Test.sql文件的下面時,遇到了異常:調用調用-SQLCMD

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 : Incorrect syntax near ''. At line:1 char: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

您是否嘗試在。\ SQLExpress之後添加數據庫名稱? – xXhRQ8sD2L7Z 2014-12-01 17:39:07

+0

你的意思是使用DATABASE開關? – 2014-12-01 17:39:36

+0

我嘗試了開關,但沒有任何區別。 – 2014-12-01 17:40:41

回答

0

當我從SQL文件中刪除單引號時,它一切正常。 Itt似乎與命令提示符sqlcmd.exe的工作方式不同。

+0

同一個!你有沒有找到任何解釋? – GGirard 2017-12-20 23:54:58

相關問題