2008年11月14日星期五

手工处理数据库中的发布订阅垃圾

使用Detach、Attach建成的DB有时候受到残留的发布订阅的垃圾侵扰,造成更新脚本无法执行,这种情况在系统上线前的内部测试时经常遇到,下面的几个语句就是用来处理此类情况发生的。

--涉及到发布订阅的字段
select * from syscolumns
where colstat=4096


--涉及到发布订阅的表名
select * from sysobjects
where replinfo>0


将上述记录的检索值改成0就可以了


--allow update system tables
sp_configure 'allow update','1'
go

--reload SQL using new set value
reconfigure with override
go

--更新完成之后,要把允许修改系统表改回来。
--forbid update system tables
sp_configure 'allow update','0'
go

--reload SQL using new set value
reconfigure with override
go