我有两台服务器:
T1
的数据库D1
上有表Server1
。T2
的数据库D2
上有表Server2
。这两个表具有相同的字段F1,F2和F3(F1是唯一的)。
更改T1表字段时,T2表的值也会改变,或者如果T2中没有记录,则插入。
最好的方法是什么?如果可能的话,请提供一个例子。
答案 0 :(得分:0)
我使用了Linked Server:
EXEC sp_addlinkedserver
@server=N'Server2',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'172.17.17.17';
我可以从Server1:
更新Server2的数据库D2上的表T2UPDATE [Server2].[D2].[dbo].[T2]
SET F2 = 'xxxxxx'
WHERE F1 = '123'
但是当我在Trigger中使用时:
USE [D1]
GO
ALTER TRIGGER [dbo].[UpdateTTX]
ON [dbo].[T1]
AFTER UPDATE
AS
BEGIN
EXEC('UPDATE [Server2].[D2].[dbo].[T2] SET F2 = ''xxxxxx'' WHERE F1 = ''123''')
END
错误: 第2行中的数据未提交。 错误来源:.Net SqlClient数据提供程序。 错误消息:超时已过期。操作完成之前经过的超时时间或服务器没有响应。
我该如何解决?