リンクサーバー上のローカルテーブルと同様のテーブルを更新するトリガーを作成しました。
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
残念ながら、接続がダウンすると
、「Msg 3616, Level 16, State 1, Line 2」というエラー メッセージが表示されます
。バッチが中止され
、ローカルで行われた更新がロールバックされました。
このエラーを維持し、ローカルの更新を維持する方法はありますか?
Windows XP Pro を実行している両方の PC で SQL Server 2005 Express Edition を使用していることに注意してください。
edit1: SQL サーバーは Express Edition
edit2: どちらの PC も Windows XP Pro を実行しているため、これらはサーバーではありません