Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell使用多个输入变量调用Sqlcmd存储过程查询_Powershell_Sql Server 2012 - Fatal编程技术网

PowerShell使用多个输入变量调用Sqlcmd存储过程查询

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 "

我有一个SQL Server存储过程,我正试图通过PowerShell运行该过程,但无法使用多个参数的语法

存储过程需要3个输入参数,但其中任何(或全部)参数都可能传递多个值。我可以很好地传递一个变量,但是当我尝试添加多个值时会出错

$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,直到我仔细查看。做了一个快速搜索,我想你指的是:或类似的东西。最好在回答中对此进行限定,因为这可能会引起混淆,并且原始问题是关于:或者您是否可以向存储过程提供参数声明语句?因为现在很难确定参数所期望的是什么。您能为存储过程提供参数声明语句吗?因为现在很难确定参数的期望值。