现在分别有两个数据库在两台服务器上,比如说是1 和 2 服务器。
现在要对1服务器里数据库的某个表进行操作(增删改)的时候,2服务器对应的数据库的这个表也要做出及时的更新(增删改)。
这样的触发器如何写?
------解决方案--------------------
试下开启跨服务器连接,然后使用[服务器名].[数据库名].[架构名].[表名].[列名]这样来实现跨服务器访问。
------解决方案--------------------
- SQL code
-- Step 1 :创建链接服务器、及其登录授权(在本地1服务器某数据库test执行)--创建链接服务器 -- 示例代码: exec sp_addlinkedserver 'datebasename ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'datebasename ', 'false ',null, '用户名 ', '密码 '-- step 2:创建触发器tri_1_2CREATE TRIGGER tri_1_2 ON [dbo].[test]FOR INSERTASBEGIN SET NOCOUNT ON SET XACT_ABORT ON DECLARE @id INT, @name VARCHAR(20);IF EXISTS(SELECT COUNT(*) FROM INSERTED WHERE NOT EXISTS(SEKECT * FROM test))>0 BEGIN SELECT @id=id,@name=name from INSERTED WHERE NOT EXISTS(SEKECT id,name FROM test) INSERT INTO srvname.dbname.dbo.test2(id,name) VALUES(@id,@name);ENDGO
------解决方案--------------------
要打开SET XACT_ABORT ON 另外,查询/更新都是用链接服务器名.数据库名.dbo.表名称这样操作.
------解决方案--------------------
你说的这个为什么不用订阅和发布功能呢