sql >> データベース >  >> RDS >> Sqlserver

複数のテーブルから挿入する SQL トリガー

    トリガーでのみ使用できる挿入または削除されたテーブルを参照しないため、もちろん、クエリで必要なよりも多くのレコードが返されます。

    最初にトリガーを作成するときは、#inserted (および/または #deleted) という名前の一時テーブルを作成し、いくつかのレコードを入力します。トリガーが配置されるテーブルのデザインと一致する必要があります。一時テーブルに、クエリに影響を与えるさまざまな基準を満たす可能性のあるいくつかの入力レコードを作成することが重要です (したがって、ケース カウントが 0 になるものとそうでないものが必要です)。テーブルに挿入されたデータまたは更新された init。 SQL サーバー トリガーは一連のデータに対して動作するため、これにより、トリガーが複数のレコードの uiinsert または更新を適切に処理できるようになります。適切に作成されたトリガーには、すべてが正しく行われることを確認するためにテストする必要があるテスト ケースがあります。#inserted テーブルには、これらすべてのテスト ケースを満たすレコードが含まれている必要があります。

    次に、#inserted に結合するトランザクションにクエリを記述します (テスト中にロールバックします)。選択で挿入を行っている場合は、それが正しくなるまで選択部分のみを記述してから、挿入を追加します。テストのために、ロールバックする前に挿入したデータを確認するために、挿入先のテーブルから選択を書き込みます。

    すべてが機能するようになったら、#inserted 参照を insert に変更し、テスト コードを削除し、もちろんロールバック (実行している内容に応じてトランザクション全体が変わる可能性があります) を削除し、コードの drop および create トリガー部分を追加します。これで、トリガーをトリガーとしてテストできますが、以前のテストから動作する可能性が高いことがわかっているため、良好な状態です。




    1. SQLAlchemy-カウントステータスはtrueです

    2. サブグループで、生成された増分列をSQLクエリに追加するにはどうすればよいですか?

    3. ユーザー設定に基づく動的テーブル列

    4. R12.2アップグレードパート-1のステップバイステップのアップグレードプロセス