ローカルの mssql 2005 サーバーからリモートの mssql 2005 サーバーへのトリガーにデータを挿入したいと考えています。
テーブル Syr があります。何かが追加されたかどうかを検出するトリガー (AFTER INSERT) を作成します。そのデータを別のリモート サーバーの同じテーブルにコピーしたいと思います。私の問題は、通常のクエリでinsertステートメント(非常に単純で、テストのためだけに静的データを使用する)を実行するだけで成功することです。リモートサーバーから選択することもできます。しかし、この単純な挿入をトリガーブロックに入れると、「分散トランザクションを開始できません」
CREATE TRIGGER T_SyrInserted
ON [DBProba].[dbo].[Syr]
AFTER INSERT
AS BEGIN
INSERT INTO [RemoteSrv].[DBProba].[dbo].[Syr] (SyrId, SyrNm ) VALUES (15000734, 'valami')
END
解決済み:
- DTC 認証を [なし] に設定します
- 「XACT_ABORT がオフであるため、ネストされたトランザクションを実行できません」というエラーが発生したため、insert ステートメントの前に次の行を追加しました: SET XACT_ABORT ON; 単純な挿入で何を「ネスト」したかはわかりませんが、問題ありません...