我有一个SQL Server存储过程,我试图通过PowerShell运行,但只是无法使用多个参数的语法。
存储过程需要3个输入参数,但其中任何一个(或全部)都可能有多个值传递给它。我可以很好地传递单个变量,但在尝试添加多个值时会出错。
void addNewPacient() {
count++;
pacients = (Pacient*)realloc(pacients, sizeof(Pacient)*count );
......//many scanf...
}
void removeLastElement() {
count--;
pacients = (Pacient*)realloc(pacients, count * sizeof(Pacient*));
}
当$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
上面的代码运行正常时。只要这些变量中的任何一个变长,脚本就会死掉(在SQL本身中正常工作)
我正在运行PowerShell 5,SQL Server 2012,以防它重要
答案 0 :(得分:0)
你尝试过这样的事吗?这是推荐的方式:
Invoke-SQLCommand -connectionString $sqlConnStr -commandText "proc_BS_Course_Migration" -commandType StoredProcedure -parameters @{"@Items" = "'0212014080804','0212014080630','0212014080620'", "@Lobs" = "''", "@CC" = "''" }