【SQLServer】“无法对数据库'XXX' 执行删除,因为它正用于复制”的解决方法 (2012-02-19 08:13:30)
作者:本站编辑
发布时间:2014-12-18
来源:本站原创
点击数:
关于这个错误,是因为我今天在服务器上想把数据库复制到本地,使用了“发布、订阅”方案,结果还没成功……尴尬……后来,我就直接把服务器上的mdf和ldf文件都直接拷到本地上了。后来在本地修改表名的时候出现了这个错误,说“无法对数据库'XXX'执行删除,因为它正用于复制”。
后来我也是查找了网上的一些方法,只需要执行 sp_removedbreplication 'XXX' 就可以了。
语法:
sp_removedbreplication '表名'
这个语句的解释是:从数据库中删除所有复制对象,但不更新分发服务器上的数据。此存储过程在发布服务器的发布数据库或订阅服务器的订阅数据库上执行。
具体不是特别理解,不过,至少能解决我的问题了!
附MSSQL2000中的问题处理思路一例(未验证):
在SQL Server 2000 里,你可能在删除表或更新一个表的索引,会收到下面的错误提示:
错误 3724,无法除去表"xxx",因为它正用于复制。
比较典型的情况是该table曾经用于复制,但是后来又删除了复制
在查询分析器里执行
-----允许对系统表进行修改
sp_configure 'allow updates', 1
go
RECONFIGURE WITH OVERRIDE
go
-----将复制的标记位清除
use (数据库名)
go
update sysobjects set replinfo=0 where name='(表名)'
go
----取消允许对系统表进行修改
sp_configure 'allow updates', 0
go
RECONFIGURE WITH OVERRIDE
go