sql-server - SQL Server 禁用复制
问题描述
我的 SQL 服务器上有一个可从另一个 SQL 服务器访问的复制数据库。从这个数据库中,不是所有的表都被复制,只是一些。当我必须对这些表进行更改时,我必须先禁用复制,否则它不允许我对这些表进行更改。
我关闭这些表的复制的地方是以下位置:
复制 > 本地出版物 > 属性 > 文章 > 表
我希望能够使用 SQL 语句从我的自定义程序/脚本中停用和激活这些表的复制。我已经看到,当我从复制中删除表时,sys.tables 的以下列发生了变化,但我不知道是否还有其他变化:
SELECT *
FROM sys.tables
where name = 'AdventureTable'
is_published = 0 or 1
is_replicated = 0 or 1
我应该如何正确地做到这一点?
解决方案
使用系统过程sp_dropmergearticle。
您需要知道复制的系统名和表的系统名(文章)
exec sp_dropmergearticle N'MyPublishingName', N'MyTableName'
如需更多帮助,您可以查看:SQL Docs
推荐阅读
- emacs - 使用 slime/swank 导航到 `defun` 和 `defmacro` 的定义
- pandas - pandas 数据框的单元格引用,根据具体值进行过滤
- r - 无法更新软件包
- bison - Flex:得到警告,规则无法匹配
- android - 如何在android中将背景渐变(形状)设置为矢量资产?
- matlab - MATLAB 中的 MSE 与 SNR,矩阵 7*1
- json - 如何使用 google indexing api 添加sites.google?
- python - 为什么我的代码会以 2 次方的刷新率保持刷新(以及如何有效地限制帧速率)
- javascript - 有没有办法在由python创建的javascript中打开json文件?
- python - 嵌套for循环构建“0”金字塔