首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

跨服务器的触发器,该如何处理

2012-10-27 
跨服务器的触发器现在分别有两个数据库在两台服务器上,比如说是1 和 2 服务器。现在要对1服务器里数据库的

跨服务器的触发器
现在分别有两个数据库在两台服务器上,比如说是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.表名称这样操作.

[解决办法]
你说的这个为什么不用订阅和发布功能呢

热点排行
Bad Request.