Sql server 需要获取调用Sqlcmd、-InputFile&;的帮助吗-变量可以很好地协同工作

Sql server 需要获取调用Sqlcmd、-InputFile&;的帮助吗-变量可以很好地协同工作,sql-server,powershell,Sql Server,Powershell,我在文件1.ps1中包含如下命令: $VariableArray=“PrincipleName='Jack'” 调用Sqlcmd-InputFile“C:\Amit\Test.sql”-变量$VariableArray-ServerInstance“3STOOGES” my Test.sql包含 --Test.sql 声明@PrincipleName varchar(20) 选择“PrincipleName=”+@PrincipleName 这使我的输出为 第1列 ------- 我试过上面提到

我在文件1.ps1中包含如下命令:

$VariableArray=“PrincipleName='Jack'”
调用Sqlcmd-InputFile“C:\Amit\Test.sql”-变量$VariableArray-ServerInstance“3STOOGES”

my Test.sql包含
--Test.sql
声明@PrincipleName varchar(20)
选择“PrincipleName=”+@PrincipleName

这使我的输出为
第1列
-------

我试过上面提到的东西

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


请告知,由于我在Windows 2012上安装了SQL server 2012和Powershell 3.0,语法完全错误。选择@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;
输出显示在此处并正常工作。


语法完全错误。选择@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;
输出显示在此处并正常工作。


您正在设置一个名为EmpName的变量,但随后在SQL文件中引用@PrincipleName。我不知道这会怎样。尝试将EmpName更改为PrincipleName。我在ps1文件中将其更正为PrincipleName。您正在设置一个名为EmpName的变量,但随后在SQL文件中引用@PrincipleName。我不知道这会怎样。尝试将EmpName更改为PrincipleName。我在ps1文件中将其更正为PrincipleName。