需要帮助获取Invoke-Sqlcmd,-InputFile& - 变得很好地一起工作

时间:2013-10-09 21:56:47

标签: sql-server powershell

我的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

1 个答案:

答案 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;

此处显示输出并且工作正常。

enter image description here