以下を検討してください (準疑似コード):
CREATE TABLE foobar (
id INT NOT NULL
message VARCHAR(40) NOT NULL
)
INSERT INTO foobar (1, "hello");
INSERT INTO foobar (2, "world");
my $resultset = "SELECT * FROM foobar";
while(!$resultset->EOF) {
"UPDATE foobar SET message='blah' WHERE id = ".$resultset->id;
$resultset->moveNext;
}
本質的に、私はテーブルからすべてのレコードを選択しようとしており、いくつかのフィールドを更新するそれぞれをループしています。ただし、これを行うと、次のエラーが発生します。
[Microsoft][SQL Server Native Client 10.0][SQL Server]別の未処理の結果セットがアクティブである間に、トリガーが結果セットを返したか、SET NOCOUNT OFF で実行されていました。(SQL-42000) continuous.pl 行 493。
問題は、トリガーを実行していないことです。これは、アクティブな結果セットを更新しようとしていることが原因ではないかと考えたので、すべてのデータを一時テーブルに選択し、一時テーブルを反復処理して元のテーブルを更新するという中間ステップを追加しましたが、それでも取得します同じエラー。
何が起こっているのですか?