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