リンクサーバー上のローカルテーブルと同様のテーブルを更新するトリガーを作成しました。トリガーまたはプロシージャー内でリンクされたサーバー接続をテストする
CREATE TRIGGER myTtableUpdate ON myTable
AFTER UPDATE AS
IF (COLUMNS_UPDATED() > 0)
BEGIN
DECLARE @retval int;
BEGIN TRY
EXEC @retval = sys.sp_testlinkedserver N'my_linked_server';
END TRY
BEGIN CATCH
SET @retval = sign(@@error);
END CATCH;
IF (@retval = 0)
BEGIN
UPDATE remoteTable SET remoteTable.datafield = i.datafield
FROM my_linked_server.remote_database.dbo.myTable remoteTable
INNER JOIN inserted i ON (remoteTable.id = i.id)
END
END -- end of trigger
接続がダウンしているとき、残念ながら、私は、エラーメッセージ
トリガーに運命 'メッセージ3616、レベル16、状態1、行2'
」トランザクションを取得します。バッチが中止されました。 '
ローカルに作成された更新はロールバックされます。
このエラーを解決してローカルアップデートを維持する手段はありますか?
Windows XP Proを実行している両方のPCでSQL Server 2005 Express Editionを使用しています。
EDIT1:両方のPC Proは、Windows XPを実行するので、これらは
最新のコメントを参照してください... –