1

我有 File1.ps1 包含以下命令:

$VariableArray = "PrincipleName='Jack'"
Invoke-Sqlcmd -InputFile "C:\Amit\Test.sql" -Variable $VariableArray -ServerInstance "3STOOGES"

我的 Test.sql 包含
--Test.sql
声明 @PrincipleName varchar(20)
SELECT 'PrincipleName=' + @PrincipleName

这给了我作为
Column1的输出
-------

我尝试了这里提到的东西

我在 Test.sql 中尝试了 $(PrincipleName) 的选项,但它抱怨 SQL Server Management Studio。

请告知我在 Windows 2012 上安装了带有 Powershell 3.0 的 SQL Server 2012

4

1 回答 1

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;

输出显示在这里并且工作正常。

在此处输入图像描述

于 2013-10-10T00:02:35.440 回答