0
我試圖創建一個觸發器,它會插入一些數據到一個表上linkedserver在MS SQL 2012年我希望能夠以檢查服務器連接處於活動狀態,如果連接檢查它不是那麼我想在其他地方記錄消息,但不能中止整個事務並回滾。我想要啓動觸發器的查詢繼續。的Sql女士入住linkedserver從觸發
我試過這裏描述的方法 How to test linkedserver's connectivity in TSQL 這樣做的工作,但錯誤仍然拋出,我的事務回滾消息。觸發器執行過程中引發
錯誤。該批次已被中止,並且用戶事務(如果有的話)已被回滾。
將引發錯誤的涉及擊落linkedserver導致回滾無論在CATCH表裏如一,不阻止任何事情。
例觸發:
CREATE TRIGGER [dbo].[TEST1_TRG]
ON [dbo].[Test1]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
declare @srvr nvarchar(128), @retval int;
set @srvr = 'loopback';
begin try
exec @retval = sys.sp_testlinkedserver @srvr;
end try
begin catch
set @retval = sign(@@error);
end catch;
print @retval
END
我無法控制調用查詢,它們可以來自任何地方。所以我真的只能在我的觸發器內工作。 – GimpArm