SQL Server 中心订阅模型(多发布单订阅)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL Server 中心订阅模型(多发布单订阅),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2498字,纯文字阅读大概需要4分钟。
内容图文
![SQL Server 中心订阅模型(多发布单订阅)](/upload/InfoBanner/zyjiaocheng/499/d9371eb09cad45249f88308337b3c9d3.jpg)
默认情况下,表结构如下:
CREATE TABLE [dbo].[DemoTab]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](10) NOT NULL, [value] [decimal](18, 4) NULL, CONSTRAINT [PK_DemoTab] PRIMARY KEY CLUSTERED ([id] ASC) ) GO
如果这样,id 自增量肯定有重复键,因此增加一个标志列 [LocationID],并如 id 列作为组合键。如下,分别在两个发布数据表中创建表。
--数据库:[TestDBSubA] USE [TestDBSubA] GO CREATE TABLE [dbo].[DemoTab]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](10) NOT NULL, [value] [decimal](18, 4) NULL, [LocationID] INT NOT NULL DEFAULT(1) CONSTRAINT [PK_DemoTab] PRIMARY KEY CLUSTERED ([id] ASC,[LocationID] ASC) ) GO --数据库:[TestDBSubB] USE [TestDBSubB] GO CREATE TABLE [dbo].[DemoTab]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [varchar](10) NOT NULL, [value] [decimal](18, 4) NULL, [LocationID] INT NOT NULL DEFAULT(2) CONSTRAINT [PK_DemoTab] PRIMARY KEY CLUSTERED ([id] ASC,[LocationID] ASC) ) GO
此时就可以使用字段 [LocationID] 来确定是不同数据库的数据了,在同一个订阅表中就不会有主键重复问题了。但是当在其中一个发布初始化时,或者操作数据时,怎么区分来自不同的发布数据库的数据呢?接下来设置静态行筛选器,非常重要!
【设置静态行筛选器】
此时可以在 数据库 [TestDBSubA] 或 [TestDBSubB] 的服务器中创建发布了,使用的是事务复制,选择需要发布的表,如下图:
下一步,设置行筛选器,筛选条件为 [LocationID]=1(这个是数据库 [TestDBSubA] 的发布),同理设置 [TestDBSubB] 的发布!
接下来一步步完成即可。还有一步重要的设置,发布表对象的属性。其实在上一步在操作中也可以设置。
【设置表项目的应用属性】
右键刚创建完成的发布,选择属性,选择项目,可以选择设置一个表或者所有表。如图:
选择设置所有表,设置属性 “名称已被使用时的操作”为 “删除数据,如果目标有行筛选器,仅删除与该筛选器匹配的数据(Delete data,If article has a row filter, delete only data that matches the filter)”
设置完成后确定推出!
同理设置 [TestDBSubB] 的发布!(注意 [LocationID] = 2)
订阅正常设置,两个发布的订阅都是同一个数据库。
先后分别初始化应用快照,正常!
现在测试,分别在两发布数据库中插入数据。
INSERT INTO [TestDBSubA].[dbo].[DemoTab]([name],[value]) SELECT 'TestDBSubA',0 INSERT INTO [TestDBSubB].[dbo].[DemoTab]([name],[value]) SELECT 'TestDBSubB',0 SELECT * FROM [TestDB].[dbo].[DemoTab]
![SQL Server 中心订阅模型(多发布单订阅) - 文章图片](/upload/getfiles/0001/2021/4/25/20210425022128201.jpg)
结果合并了!!所有DML操作正常同步!数据可以正常操作同步,但是字段增删改则有问题!!
SQL Server 中心订阅模型(多发布单订阅)
标签:tab 完成 筛选条件 alt filter 不同 下一步 sdn 字段
本文系统来源:https://www.cnblogs.com/lonelyxmas/p/8360757.html
内容总结
以上是互联网集市为您收集整理的SQL Server 中心订阅模型(多发布单订阅)全部内容,希望文章能够帮你解决SQL Server 中心订阅模型(多发布单订阅)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。