SQLServer 事务复制中使用脚本添加某个对象的发布

原文:SQLServer 事务复制中使用脚本添加某个对象的发布

--	use [发布库] 

--添加表:创建项目并将其添加到发布中
exec sp_addarticle
@publication = N'ReplicationName',
@article = N'MyObject',
@source_owner = N'dbo',
@source_object = N'MyObject',
@destination_owner = N'dbo',
@destination_table = N'MyObject',
@schema_option = 0x0000004008037FDF, --项目属性(自参考)
@status = 0,
@description = N'', --default
@type = N'logbased', --default
@creation_script = null, --default
@pre_creation_cmd = N'drop', --default
@vertical_partition = N'false', --default
@identityrangemanagementoption = N'manual',  --default
@force_invalidate_snapshot = 1,
@ins_cmd = N'CALL sp_MSins_dboMyObject',
@del_cmd = N'CALL sp_MSdel_dboMyObject',
@upd_cmd = N'SCALL sp_MSupd_dboMyObject'
go

--添加视图
exec sp_addarticle
@publication = N'ReplicationName',
@article = N'v_myview',
@source_owner = N'dbo',
@source_object = N'v_myview',
@destination_owner = N'dbo',
@destination_table = N'v_myview',
@type = N'view schema only',
@description = null,
@creation_script = null,
@pre_creation_cmd = N'drop',
@schema_option = 0x0000000008000001,
@force_invalidate_snapshot = 1
go

--添加存储过程
exec sp_addarticle
@publication = N'ReplicationName',
@article = N'usp_myproc',
@source_owner = N'dbo',
@source_object = N'usp_myproc',
@destination_owner = N'dbo',
@destination_table = N'usp_myproc',
@type = N'proc schema only',
@description = null,
@creation_script = null,
@pre_creation_cmd = N'drop',
@schema_option = 0x0000000008000001,
@force_invalidate_snapshot = 1
go

--添加函数
exec sp_addarticle
@publication = N'ReplicationName',
@article = N'f_myfunc',
@source_owner = N'dbo',
@source_object = N'f_myfunc',
@destination_owner = N'dbo',
@destination_table = N'f_myfunc',
@type = N'func schema only',
@description = null,
@creation_script = null,
@pre_creation_cmd = N'drop',
@schema_option = 0x0000000008000001,
@force_invalidate_snapshot = 1
go

/*
添加视图/存储过程/函数 主要是 @type 不一样:

@type = N'view schema only', --视图
@type = N'proc schema only', --存储过程
@type = N'func schema only', --函数

*/

--对其请求订阅中的新项目的订阅添加到发布中
exec sp_refreshsubscriptions @publication = N'ReplicationName'
go

--启动快照代理
exec sys.sp_startpublication_snapshot @publication = N'ReplicationName'
go

/*
--移除发布项目(即取消某个对象的同步)
exec sp_dropsubscription @publication = N'ReplicationName',@article = N'MyObject',@subscriber = N'all'
go
exec sp_droparticle @publication = N'ReplicationName',@article = N'MyObject',@force_invalidate_snapshot = 0
go
*/

原文地址:https://www.cnblogs.com/lonelyxmas/p/8360778.html

时间: 2024-11-07 19:43:01

SQLServer 事务复制中使用脚本添加某个对象的发布的相关文章

如何处理SQL Server事务复制中的大事务操作

如何处理SQL Server事务复制中的大事务操作 事务复制的工作机制 事务复制是由 SQL Server 快照代理.日志读取器代理和分发代理实现的.快照代理准备快照文件(其中包含了已发布表和数据库对象的架构和数据),然后将这些文件存储在快照文件夹中,并在分发服务器中的分发数据库中记录同步作业. 日志读取器代理监视为事务复制配置的每个数据库的事务日志,并将标记为要复制的事务从事务日志复制到分发数据库中,分发数据库的作用相当于一个可靠的存储-转发队列. 分发代理将快照文件夹中的初始快照文件和分发数

事务复制中的分区表

背景 事务复制中发布表有分区表,如何配置发布项,使分区结构传播到订阅库?有何限制? 测试环境 CodeUSE [master] GO CREATE DATABASE [OMS_Test] ON PRIMARY ( NAME = N'OMS_Test_data1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\OMS_Test.mdf' , SIZE = 34816KB ,

(初稿)SQL Server 复制(Replication)系列(2)——事务复制搭建

本文演示如何搭建最基本的事务复制. 环境准备: 虚拟机2台: 服务器名分别为RepA和RepB,RepA为发布服务器,RepB为订阅服务器.均安装WindowsServer 2008R2英文版(在外企工作的原因).并确保两台服务器能互访. SQL Server: 在上面的虚拟机中分别安装SQLServer 2008 R2 x64 英文企业版. 演示数据库: 微软示例数据库AdventureWorks2008 R2 配置事务复制 复制的配置可以使用T-SQL来实现,但是所需的T-SQL及存储过程加

SQL Server 复制(Replication) ——事务复制搭建

本文演示如何搭建最基本的事务复制. 环境准备: 虚拟机2台: 服务器名分别为RepA和RepB,RepA为发布服务器,RepB为订阅服务器.均安装WindowsServer 2008R2英文版(在外企工作的原因).并确保两台服务器能互访. SQL Server: 在上面的虚拟机中分别安装SQLServer 2008 R2 x64 英文企业版. 演示数据库: 微软示例数据库AdventureWorks2008 R2 配置事务复制 复制的配置可以使用T-SQL来实现,但是所需的T-SQL及存储过程加

事务复制

本文截取自MSDN https://msdn.microsoft.com/zh-cn/library/ms151176(v=sql.120).aspx 事务复制通常从发布数据库对象和数据的快照开始.创建了初始快照后,接着在发布服务器上所做的数据更改和架构修改通常在修改发生时(几乎实时)便传递给订阅服务器.数据更改将按照其在发布服务器上发生的顺序和事务边界应用于订阅服务器,因此,在发布内部可以保证事务的一致性. 事务复制通常用于服务器到服务器环境中,在以下各种情况下适合采用事务复制: 希望发生增量

SqlServer 禁止架构更改的复制中手动修复使在发布和订阅中分别增加字段同步

由于之前的需要,禁止了复制架构更改,以至在发布中添加一个字段,并不会同步到订阅中,而现在又在订阅中添加了一个同名字段,怎么使这发布和订阅的两个字段建立同步关系呢? 下面就测试更改:此次发布类型为事务复制的可更新订阅,其他类型的发布没有测试. 首先建立事务复制的可更新订阅,建立好之后. 在发布创建一张测试表: CREATE TABLE [dbo].[DemoTab]( [Guid] [uniqueidentifier] NOT NULL, [SID] [varbinary](85) NOT NUL

SqlServer将数据库中的表复制到另一个数据库

前述: 文章来自百度经验 操作: 在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中,今天,为大家介绍这种操作的具体方法及步骤. 复制表结构 1 首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”. 2 在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键). 3 新建查询,然后右键”粘贴“(或ctrl

(转)SqlServer将数据库中的表复制到另一个数据库

本文为转载地址为:http://jingyan.baidu.com/article/d5c4b52bc5c102da570dc547.html 复制表结构 在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中,今天,小编为大家介绍这种操作的具体方法及步骤. 1.首先,打开并连接Sql Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口” 2.在第1步产生的编辑器中按”crtl+a“组

SqlServer将表中数据复制到另一张表

insert into phone2(ph,attr,type,carrier) select top 1000 ph,attr,type,carrier from phone 将表phone的字段和前1000条数据复制到Phone2表 数据库中的某个表删除重复数据(phone2表不能存在) select distinct  * into phone2 from phone 表phone的数据放到phone2中(phone2表可以存在) insert into phone2(ph,attr,ty