Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将表添加到复制的数据库_Sql_Sql Server - Fatal编程技术网

Sql 将表添加到复制的数据库

Sql 将表添加到复制的数据库,sql,sql-server,Sql,Sql Server,我最近在一个数据库中添加了两个新表,该数据库当前正在进行事务性复制。除了删除和重新创建整个发布之外,是否有办法将这两个新表快速添加到现有发布中?我需要拍一张全新的快照吗?我只是问,因为这是一个生产数据库,不能停止,直到晚上,锁定将导致重大问题。 谢谢-TravisDISCALIMER:所有复制都有可能在读取整个日志时锁定整个数据库。变更应在生产之外进行彻底测试,并在非生产时间实施 对于基本事务复制,您可以对每个表使用和,而不会影响现有订阅。如果您使用sp_addsubscription@arti

我最近在一个数据库中添加了两个新表,该数据库当前正在进行事务性复制。除了删除和重新创建整个发布之外,是否有办法将这两个新表快速添加到现有发布中?我需要拍一张全新的快照吗?我只是问,因为这是一个生产数据库,不能停止,直到晚上,锁定将导致重大问题。
谢谢-Travis

DISCALIMER:所有复制都有可能在读取整个日志时锁定整个数据库。变更应在生产之外进行彻底测试,并在非生产时间实施

对于基本事务复制,您可以对每个表使用和,而不会影响现有订阅。如果您使用
sp_addsubscription@article='all'初始化当前订阅(默认),它可能不允许您添加其他项目,在这种情况下,您将不得不删除现有订阅或创建新发布


即使必须删除现有订阅,您也不必为它们拍摄快照,但您有责任保持数据同步。在删除订阅之前,应该使用触发器或其他方法锁定更改,并使用
sp_addsubscription@sync_type='replication support only'重新创建更改如果以这种方式创建所有订阅,则不会生成快照。如果只有新文章订阅了
@sync\u type='automatic'
,那么新快照中将只显示这些文章。之后,您应该验证发布服务器和订阅服务器之间的数据完整性。

您使用的是哪个数据库?您使用的是哪个数据库?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加标记,
postgresql
oracle
db2
sql server
,…sql server。对不起,谢谢。我会试试看。