在我的软件中,我有一个运行数据库更新程序的过程,我需要使用该数据库更新程序来修补最新版本。 在我的最新脚本中,我想向具有发布用于复制设置的发布的表中添加一列。 当我创建我的alter script以添加列时,我收到一条消息,内容如下:

You can only specify the READPAST lock in the READ COMMITTED or REPEATABLE READ isolation levels.

有什么想法解决这个问题的最简单方法是什么? 我是否需要编写出版物的删除脚本,然后再重新添加它!?

===============>>#1 票数:2 已采纳

本周,我们在使用SQL Compare生成的脚本来同步生产和开发环境时遇到了这个问题。 此问题是由SQL Compare(或您正在使用的任何脚本)中的脚本以高于READ COMMITTED或REPEATABLE READ的更高隔离级别启动事务引起的。

当您运行脚本的一部分时,将具有ALTER TABLE来添加该列,这将启动对SQL复制代码的调用,该SQL复制代码会将ALTER TABLE命令传播给订户。 该代码无法在具有较高隔离级别的较大事务中执行。

我们使用的解决方案是编写复制脚本。 在该表上删除复制。 应用同步脚本。 然后重新创建复制。

替代方法是编辑synch脚本以更改事务的隔离级别或将其完全删除。 那不是我们想要做的事情,因此我们采用了前面提到的解决方案。

===============>>#2 票数:1

要将新列添加到表中并将其包括在现有出版物中,则需要在发布者处使用ALTER TABLE <Table> ADD <Column>语法。 默认情况下,架构更改将传播到订阅服务器,发布属性@replicate_ddl必须设置为true。

有关更多信息,请参见在发布数据库上进行架构更改

  ask by Richard Hooper translate from so

未解决问题?本站智能推荐:

1回复

带有可更新订阅和冲突解决程序的事务性发布

在使用“ 合并出版物 ”复制SQL Server时,我能够找到大量有关创建自定义冲突解决程序以及将基于托管代码的解决程序用作业务逻辑处理程序的 文档,但是似乎找不到与此相同的任何东西。使用带有可更新订阅的事务发布时的冲突解决方法 在将事务发布与可更新的订阅一起使用时,是否可以使用合并文章解
2回复

建议的复制类型?

我在不同的服务器中有2个类似的表,某些列中的数据只能由服务器A更改,而其他列中的数据只能由服务器B更改。 但是,我需要这些表始终保持一致(1分钟计划)。 这是“具有可更新订阅的事务复制”解决的场景吗?
3回复

使用脚本进行事务复制

我能够使用SSMS配置事务复制,并且它可以正常工作。 但是我想使用脚本来配置它,以便从我的C#/ vb应用程序中使用它。 有什么办法吗?
2回复

混合事务复制和日志传送?

我已使用推送事务复制将大型数据库(接近1TB)复制到三台远程服务器。 订阅者是只读的。 每个月的一天中会插入大量数据(并从其他来源更新)(来自其他来源)。 一天之后,它总是使复制失败,我们每个月都通过备份手动初始化复制。 是否可以在插入日之前切换到日志传送,并在批量插入日志传送后切换
1回复

SQL Server复制-没有复制的事务可用

我创建了一个发布者(在sql server 2008 r2上),创建了事务复制,并在订阅者sql实例(SQL Server 2012 Express)上创建了一个新数据库。 在SQL Server 2012 Express上创建新订阅之后。 但是我的新数据库尚未通过同步进行更新。 在
4回复

停止在SQL Server中复制大型事务

我有一个问题,试图阻止发布者分发给订阅者的大型交易。 假设某人意外地用5000万条记录更新了表中的每条记录,然后在意识到自己的错误后将所有记录重新设置。 在这种情况下,更改将在事务复制设置中分发给两个订户。 在系统上,它说需要2天才能复制到订阅者,但是克服此问题的最佳方法是什么? 我
1回复

孤立复制的问题

我对SQL Server还是很陌生,所以我当然在做所有DBA任务。 上周,我采取了笨拙的举动,当我在测试数据库上进行还原时,它覆盖了复制。 因此,我尽力删除了复制,这是推复制,并重新创建了发布和订阅服务器。 我仍然收到错误消息,但指出对发布“ xxx_DEV”的订阅已过期或不存在。 我假
1回复

如果在事务复制期间连接丢失,将会发生什么?

如果在事务复制期间连接丢失,将会发生什么? 假设db1和db2正在复制记录,但是在复制期间两个数据库之间的连接丢失了。 会发生什么?
2回复

包装器存储过程,用于为事务复制创建发布

我已经创建了一个包装器存储过程来为SQL Server 2008 Standard Edition SP3的事务复制创建发布。 但是当我执行该过程时,我收到以下错误。 “file_exists”列不是用户定义的。 这个错误对我没有任何意义。 这适用于Dev环境,但相同的代码不适用于测试环
1回复

SQL Server双向事务复制 - 这是一个很好的用例吗?

我们在使用SQL服务器扩展时遇到了问题。 这主要是由于以下几个原因:1)设计不良的数据结构,2)繁重的工作和业务/处理逻辑都是在T-SQL中完成的。 这是由我们聘请的Redmond的Microsoft SQL人员在我们的服务器上进行分析验证的。 我们通过不断增加命令超时来解决问题,这是荒谬