我创建了一个存储过程来导入记录列表。此存储过程插入到临时表,然后根据合同编号是否匹配进行合并。WHEN NOT MATCHED BY TARGET 将其插入到真实表中,而 WHEN NOT MATCHED BY SOURCE 则从真实表中删除。
这很好用,我正在处理的问题是在 PHP 中试图让它回显 SQL SERVER 消息:
(2384 row(s) affected)
(2 row(s) affected)
“(2384 行受影响)”的第一条消息显示为 sql_srv_rows_affected,但第二条消息“(2 行受影响)”没有。第一个是临时表的导入,第二个结果是受 MERGE 语句影响的行数。
这是我的代码来回显受影响的行:
$rows_affected = sqlsrv_rows_affected($Result);
if( $rows_affected === false) {
die( print_r( sqlsrv_errors(), true));
}
elseif( $rows_affected == -1) {
echo "No information available.<br />";
}
else {
echo $rows_affected." rows were updated.<br />";
}
我可以做一个while语句来实现我正在寻找的东西吗?
先感谢您!
编辑:这是有效的代码:
$rows_affected = sqlsrv_rows_affected( $PPListImportResult);
$next_result = sqlsrv_next_result($PPListImportResult);
if( $rows_affected === false) {
die( print_r( sqlsrv_errors(), true));
}
elseif( $rows_affected == -1) {
echo "No information available.<br />";
}
else {
echo $rows_affected." rows were updated.<br />";
echo $next_result." rows were updated.<br />";
}
如果我有超过 2 个结果,我可以将 $next_result 变量更改为 while 语句。