3

トランザクションに含まれないトリガーを作成することはできますか?

トリガーを使用してリンク サーバー上のデータを更新したいのですが、ファイアウォールの問題により、2 つのサーバー間で分散トランザクションを作成できません。

4

2 に答える 2

2

役に立たないことはわかっているので、おそらく反対票を投じられるでしょうが、実際の解決策はファイアウォールの問題を修正することです。

リモート (リンクされていない) サーバー (最近は推奨されるオプションではありません) を使用している場合は、SET REMOTE_PROC_TRANSACTIONS OFF を使用して、リモート トランザクションに DTC を使用しないようにすることができます。しかし、とにかく、それはおそらくリンクされたサーバーでは役に立ちません.

于 2008-08-21T12:44:42.490 に答える
2

おそらく必要なのは、リンク サーバーの更新を含むキューと、キューからデータを読み取ってリモート サーバーを更新するプロセスの組み合わせです。トリガーは、通常のトランザクションの一部としてメッセージをキューに挿入します。このデータは別のプロセスによって読み取られ、リモート サーバーの更新に使用されます。処理エラー (および場合によっては再試行) にはロジックが必要です。

キューは、1 つ以上のテーブルで実装できます。

于 2008-08-27T17:24:42.250 に答える