首页 > 解决方案 > SQL Server 禁用复制

问题描述

我的 SQL 服务器上有一个可从另一个 SQL 服务器访问的复制数据库。从这个数据库中,不是所有的表都被复制,只是一些。当我必须对这些表进行更改时,我必须先禁用复制,否则它不允许我对这些表进行更改。

我关闭这些表的复制的地方是以下位置:

复制 > 本地出版物 > 属性 > 文章 > 表

我希望能够使用 SQL 语句从我的自定义程序/脚本中停用和激活这些表的复制。我已经看到,当我从复制中删除表时,sys.tables 的以下列发生了变化,但我不知道是否还有其他变化:

SELECT *
FROM sys.tables
where name = 'AdventureTable'

is_published = 0 or 1
is_replicated = 0 or 1

我应该如何正确地做到这一点?

标签: sql-serverreplication

解决方案


使用系统过程sp_dropmergearticle

您需要知道复制的系统名和表的系统名(文章)

exec sp_dropmergearticle N'MyPublishingName', N'MyTableName'

如需更多帮助,您可以查看:SQL Docs


推荐阅读