我的File1.ps1包含如下命令:
$ VariableArray =“PrincipleName ='Jack'”
Invoke-Sqlcmd -InputFile“C:\ Amit \ Test.sql”-Variable $ VariableArray -ServerInstance“3STOOGES”
我的Test.sql包含
--Test.sql
声明@PrincipleName varchar(20)
选择'PrincipleName ='+ @PrincipleName
这使我输出为
列1
-------
我尝试过提及here
的内容我在Test.sql中尝试了$(PrincipleName)的选项,但它抱怨了SQL Server Management Studio。
请告知我在Windows 2012上安装了带有Powershell 3.0的SQL Server 2012
答案 0 :(得分:1)
语法错了。由于未设置变量,SELECT @PrincipleName将不返回任何内容。
在PowerShell ISE中使用此语法。
Import-Module “sqlps” -DisableNameChecking
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -InputFile "C:\temp\john.sql" -Variable $MyArray
在sql文件中使用此语法。
SELECT $(MyVar1) AS Var1, $(MyVar2) AS Var2;
此处显示输出并且工作正常。