SQL Server多实例之间触发器同步数据
admin
2024-02-29 19:46:22

SQL Server多实例环境搭建:参考链接

在本地完成多实例环境搭建后,数据库中有两个实例,这里成为local实例和Cake实例。

在local实例的[MyTestDB]数据库里的表[test_mytable]上创建触发器:

USE [MyTestDB]
GO
/****** Object:  Trigger [tr_insert]    Script Date: 11/28/2022 16:44:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [tr_insert]
on [test_mytable]
after insert --插入触发
asbegin--定义变量declare @name varchar(50)declare @age intdeclare @class varchar(50)--在inserted表中查询已经插入记录信息select @name=name, @age=age, @class=class from insertedinsert into openrowset('SQLOLEDB', '127.0.0.1\Cake,1450'; 'sa'; 'asas', [MyCakeTestDB].[test_mytable]) (name, age, class) values (@name, @age, @class)print '插入成功!'-- 本来想用下面这种方式建立连接和插入数据的。但是这样写会报错:在sys.servers中找不到服务器'Cake'。在SSMS里新建查询,执行下面前两句,能正常执行后再执行最后一句insert,能正常执行成功。但如果连接登录删除这三句一并执行,则同样会报错:在sys.servers中找不到服务器'Cake'。--exec sp_addlinkedserver 'Cake', '', 'SQLOLEDB', '127.0.0.1\Cake,1450' --exec sp_addlinkedsrvlogin 'Cake', 'false', null, 'sa', 'asas'--insert into Cake.MyCakeTestDB.test_mytable (name, age, class) values (@name, @age, @class)end

这时在local实例的[MyTestDB]数据库里的表[test_mytable]插入数据时,会同时触发触发器,自动往Cake实例的[MyCakeTestDB]数据库里的表[test_mytable]注入数据。

也可以在cmd命令行执行:

C:\Users\Administrator>sqlcmd
1> insert into [MyTestDB].[test_mytable] values ('1', 1, '1')
2> go

如果执行成功会显示:


(1 行受影响)
插入成功!(1 行受影响)

---------------------------------------------------------------------------------------

如果插入数据时报错:服务器***上的 MSDTC 不可用,则在cmd命令行里执行net start msdtc,开启服务,或者在windows控制面版-->管理工具-->服务-->Distributed Transaction Coordinator-->右键选择启动。如果Distributed Transaction Coordinator 无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。重新创建 MSDTC 日志,并重新启动服务的步骤如下:
(1) 单击"开始",单击"运行",输入 cmd 后按"确定"。
(2) 输入:msdtc -resetlog (注意运行此命令时,不要执行挂起的事务)
(3) 最后输入:net start msdtc 回车

参考链接:链接

---------------------------------------------------------------------------------------

如果出现错误:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset的访问,则需要开启Ad Hoc Distributed Queries组件:

exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

 参考链接:链接

---------------------------------------------------------------------------------------

相关内容

热门资讯

上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...
原创 餐... 2026年9月8日晚,南京浦口区泰冯路29号,墨语江南·阿婆菜餐厅户外帐篷里,灯火温润,其间还天降喜...
原创 它... 人到中年肝肾精血慢慢耗损,容易腰膝酸软、头晕眼花、精神疲惫。黄精性平,擅长补肝肾、益精血,搭配不同食...
同样卖奶茶,为何古茗赚了15亿... 出品/联商专栏 撰文/老刀 编辑/蔡建桢 今年上半年,蜜雪、古茗、霸王茶姬、茶百道、沪上阿姨全部盈利...