ホームページ > データベース > mysql チュートリアル > SQL Server で更新されたテーブル列の XML を効率的に生成するにはどうすればよいですか?

SQL Server で更新されたテーブル列の XML を効率的に生成するにはどうすればよいですか?

DDD
リリース: 2024-12-23 00:16:18
オリジナル
188 人が閲覧しました

How to Generate XML of Updated Table Columns in SQL Server Efficiently?

SQL Server での更新されたテーブル列の XML の生成

SQL Server の COLUMNS_UPDATED 関数は、テーブルの更新中に変更された列についての洞察を提供します。ただし、XML 形式で更新された列値のみが必要なシナリオの場合は、別のアプローチを紹介します。

変更された列を識別するための自動ルーチン

それぞれを手動で指定するのではなく、 SELECT ステートメント内の列を使用すると、自動ルーチンがテーブル構造に基づいて列リストを動的に生成できます。これにより、トリガーの開発が簡素化され、将来のテーブル変更にも確実に適応できるようになります。たとえば、DBCustomers テーブルのトリガーの場合:

アンピボットを使用した代替ソリューション

別のアプローチでは、アンピボット技術を活用し、COLUMNS_UPDATED を完全に回避します。

  • 挿入と削除の両方をアンピボットしますテーブルを作成し、一意のキー、変更された列値、列名という 3 つの列を作成します。
  • ピボットされていないテーブルを結合し、列値の変更、削除、挿入をフィルターします。
  • 結果を次の場所に保存します。監査目的のための別のテーブル。

この方法では、動的 SQL の必要性がなくなり、テーブル構造に関係なく一貫した出力フォーマットが保証されます。これは、多数の列があるテーブルや定期的な列の追加があるテーブルに特に有益です。

考慮事項

変更される可能性のある自然主キーを持つテーブルを扱う場合、 NEWID() 関数を使用して追加の列に GUID を設定することをお勧めします。これにより、ピボット解除プロセスが監査証跡の目的で有効なままであることが保証されます。

以上がSQL Server で更新されたテーブル列の XML を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート