私はいくつかのトリガーパフォーマンスの最適化を行っています。テストしたいです。私は実際のトリガーと変更されたトリガーを持っていて、私は実際のデータで古いトリガーと新しいトリガーのテストを実行し、それを比較したい。テーブルAを行ごとにA_BCKにコピーしたい。表Aには約60列と4000行があるため、トリガーは4000回実行され、パフォーマンステストに使用できます。行ごとに行をコピーする
私はカーソルについて読んだことがありますが、行ごとのコピーでカーソルと変数を使用する方法(a_bckに選択しないでください。今のよう
私の行のコピー手順は、次のようになります。
declare @actualrow varchar(15);
DECLARE eoauz CURSOR FAST_FORWARD FOR SELECT * FROM A
open eoauz
fetch next from eoauz into @actualrow
while @@fetch_status = 0
begin
/* INSERT INTO A_BCK VALUES FROM @actualrow */
fetch next from eoauz into @actualrow
end
close eoauz
deallocate eoauz
もちろん、これは動作しません。私はvarcharの代わりに行変数のようなものが必要です。誰かが私の仕事を達成する方法を手伝いますか?
なぜこの行を行単位で処理していますか? MSSQLはベースに設定されています。あなたが痛みの世界に住んでいない限り、特にトリガでは、カーソルを使用しないでください。 – codingbadger
私はこの_in_私のトリガーをしないでください。私はこれを実行して、私のトリガを試してみたいです。私は実際のデータに対してトリガを実行する方法が必要です。 –
'into @ actualrow'ビットを削除すると、行全体がクライアントに返されます。どうやら別のテーブルにその行を挿入する構文があるかどうかはわかりません。 –