我似乎无法获得称为$sqlParameters
的PS变量以在SQL脚本中使用,这是我做错事情的任何线索吗?
PowerShell:
$sqlParameters = "powerShellVar = 'CONTOSO\cmpsvc'"
invoke-sqlcmdInvoke SQL script using Powershell variables -inputfile "c:\temp\test.sql" -serverinstance SRVSCCM\MSSQLSERVER -variable $sqlParameters
SQL:
CREATE LOGIN [$sqlParameters] FROM WINDOWS;
USE test
EXEC sp_addrolemember N'db_owner', N'$sqlParameters'
GO
詹姆士
最佳答案
您可以尝试以下操作:
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -Query "SELECT `$(MyVar1) AS Var1, `$(MyVar2) AS Var2;" -Variable $MyArray
或类似的东西:
$query=@'
CREATE LOGIN [$sqlParameters] FROM WINDOWS;
USE test
EXEC sp_addrolemember N'db_owner', N'$sqlParameters'
GO
'@
Invoke-Sqlcmd -Query $query
但是,如果您有文件,则必须使用T-sql变量,这仅是因为SQL仅以这种方式理解:
Invoke-Sqlcmd -InputFile "C:\Folder\SQLCmd.sql"
希望能帮助到你。