[解決済み] SQL Server テーブルへの変更をチェックしますか?
質問
トリガーを使用したり、データベースの構造を変更することなく、SQL Serverデータベースのテーブルへの変更を監視するにはどうすればよいですか?私が使用しているプログラミング環境は .NET とC#を使用しています。
任意の SQL Server 2000 SP4以降。私のアプリケーションは、他社製品のデータ可視化をボルトオンで行うものです。当社の顧客は数千人規模なので、インストールのたびにサードパーティベンダーのテーブルを修正するような要件は入れたくありません。
By "テーブルへの変更" テーブルの構造の変更ではなく、テーブルのデータの変更を意味しています。
最終的には、一定期間ごとに変更をチェックするのではなく、変更がアプリケーションのイベントをトリガーするようにしたいのです。
私の要件(トリガーやスキーマの変更なし、SQL Server 2000と2005)を考慮すると、最適な方法は
BINARY_CHECKSUM
関数を使用します。
T-SQL
. 私が計画している実装方法は、このようなものです。
X秒ごとに以下のクエリを実行する。
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM sample_table
WITH (NOLOCK);
そして、保存されている値と比較します。値が変更されている場合は、クエリを使用してテーブルを1行ずつ調べます。
SELECT row_id, BINARY_CHECKSUM(*)
FROM sample_table
WITH (NOLOCK);
そして、返されたチェックサムを保存されている値と比較します。
どのように解決するのですか?
CHECKSUMコマンドを見てみましょう。
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK);
これは、テーブルの内容が変更されていない限り、実行するたびに同じ番号を返します。詳しくは、この件に関する私の投稿を参照してください。
以下は、テーブルが変更されたときに、キャッシュの依存関係を再構築するために使用した方法です。
ASP.NET 1.1 データベースキャッシュの依存関係(トリガーなし)
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL Server にテーブルが存在するかどうかを確認する
-
[解決済み] Count()で条件を指定することは可能ですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 指定されたスキーマにテーブルが存在するかどうかを確認する方法
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] Entity Framework VS LINQ to SQL VS ADO.NETでストアドプロシージャを使う?[クローズド]