PowerShell使用多个输入变量调用Sqlcmd存储过程查询
我有一个SQL Server存储过程,我正试图通过PowerShell运行该过程,但无法使用多个参数的语法 存储过程需要3个输入参数,但其中任何(或全部)参数都可能传递多个值。我可以很好地传递一个变量,但是当我尝试添加多个值时会出错PowerShell使用多个输入变量调用Sqlcmd存储过程查询,powershell,sql-server-2012,Powershell,Sql Server 2012,我有一个SQL Server存储过程,我正试图通过PowerShell运行该过程,但无法使用多个参数的语法 存储过程需要3个输入参数,但其中任何(或全部)参数都可能传递多个值。我可以很好地传递一个变量,但是当我尝试添加多个值时会出错 $SqlItems = "Items='0212014080804','0212014080630','0212014080620'" $SQLLogs = "Lobs=''" $SQLCodes = "CC=''" Invoke-Sqlcmd -Query "
$SqlItems = "Items='0212014080804','0212014080630','0212014080620'"
$SQLLogs = "Lobs=''"
$SQLCodes = "CC=''"
Invoke-Sqlcmd -Query "EXEC proc_BS_Course_Migration @Items=`$(Items), @Lobs=`$(Logs), @CC=`$(CC)" -Variable $SQLItems, $SQLLogs, $SQLCodes
当$SqlItems=“Items='021201408084'
以上代码正常工作时。一旦这些变量中的任何一个变长,脚本就会消失(在SQL本身中工作正常)
我正在运行PowerShell 5,SQL Server 2012,以防万一您尝试过类似的方法吗?这是推荐的方法:
Invoke SQLCommand-connectionString$sqlConnStr-commandText“proc_BS_Course_Migration”-commandType StoredProcedure-parameters@{“@Items”=“'021201408084','0212014080630','0212014080620'”,@Lobs”=“,“@CC”=“}
你试过这样的东西吗?这是推荐的方法:
Invoke SQLCommand-connectionString$sqlConnStr-commandText“proc_BS_Course_Migration”-commandType StoredProcedure-parameters@{“@Items”=“'021201408084','0212014080630','0212014080620'”,@Lobs”=“,“@CC”=“}
参数参数不存在。我检查了Invoke Sqlcmd上的MS文档,并检查了最新安装的模块21.1.18068。起初我认为这是指Invoke Sqlcmd,直到我仔细查看。做了一个快速搜索,我想你指的是:或类似的东西。最好在您的答案中对其进行限定,因为它可能会引起混淆,而原始问题是指:或者-Parameters参数不存在。我检查了Invoke Sqlcmd上的MS文档,并检查了最新安装的模块21.1.18068。起初我认为这是指Invoke Sqlcmd,直到我仔细查看。做了一个快速搜索,我想你指的是:或类似的东西。最好在回答中对此进行限定,因为这可能会引起混淆,并且原始问题是关于:或者您是否可以向存储过程提供参数声明语句?因为现在很难确定参数所期望的是什么。您能为存储过程提供参数声明语句吗?因为现在很难确定参数的期望值。