首页 > 解决方案 > 可以使用多个参数从 PowerShell 运行 SQL 文件

问题描述

我有一个带有获取数据的 PowerShell 脚本,然后运行一个 SQL 文件,解析它获得的数据。但是我不断收到以下错误:

Invoke-Sqlcmd :用于为 Invoke-Sqlcmd cmdlet 定义新变量的格式无效。请使用“var=value”格式定义新变量。

PowerShell 脚本:

Write-host $ID, $XMLParam, $SourceID

$DBParam1 = "ID="+ $ID
$DBParam2 = "XMLPARAM="+ $XMLParam
$DBParam3 = "SOURCEID="+ $SourceID

$DBParams = @($DBParam1, $DBParam2, $DBParam3)

$Results = Invoke-Sqlcmd -InputFile "D:\SamHelp\marksheet.sql" -Variable $DBParams -Server $SQLServer -Database 'DB' -Username $Username -Password $Password

SQL 文件:

declare @id int, @xmlParam xml, @sourceID int

SET @id = '$(ID)'
SET @xmlParam =  '$(XMLPARAM)'
SET @sourceID = '$(SOURCEID)'
...

Write-Hostpowershell 中的输出:

001 <data><destSu id="000001"/><destSu id="000002"/></data> 0000001

标签: sqlsql-serverpowershell

解决方案


推荐阅读