T3财务通普及版,MSDE升级到SQL2000,在恢复账套的时候,出现以下提示:





处理办法:打开数据库的企业管理器,打开master数据库,点“存储过程”,点右键新建存储过程,文本里面写入:
[code=sql]create procedure sp_MScleandbobjectsforreplication
as
begin
? ? set nocount on
? ? declare @tabid int
? ?? ?? ? ,@colname sysname
? ?? ?? ? ,@publish smallint? ?? ???/* Constant: 0x1000 */
? ?? ?? ? ,@nonsqlsub smallint? ?? ???/* Constant: 0x2000 */
? ?? ???,@initiated smallint? ?? ?/* Constant: 0x4000 */
? ?? ???,@repldts smallint? ?? ?/* Constant: 0x8000 */
? ?? ???,@publish_bit smallint
? ?? ???,@replicate_bit smallint
? ?? ???,@filter smallint
? ?? ???,@schema_replicated smallint
? ?? ???,@procexec smallint
? ?? ???,@db_tranbit smallint

? ? SELECT @publish = 0x1000
? ?? ?? ? ,@nonsqlsub = 0x2000
? ?? ???,@repldts = 0x8000
? ?? ???,@publish_bit = 1
? ?? ?? ? ,@replicate_bit = 2
? ?? ?? ? ,@filter = 32
? ?? ?? ? ,@procexec = 24
? ?? ?? ? ,@schema_replicated = 0x00000200
? ?? ?? ? ,@db_tranbit = 1
??
??--if database is in read-only mode, don't try to cleanup anything
??if databasepropertyex(db_name(), 'Updateability') = 'READ_ONLY'
? ? return (0)

??begin tran
??save tran sp_MScleandb
??--
??--these two conditions are required for us to get here, but double check again just to make sure
??--
??IF NOT EXISTS (SELECT * FROM master..sysdatabases
? ? WHERE name = db_name() collate database_default AND (category & @db_tranbit) = @db_tranbit)
? ? and NOT EXISTS (select * from sysobjects where name = 'syspublications' )
??begin
? ?? ?--
? ?? ?-- cleanup the objects in the database if they are not in clean state (replication metadata is marked)
? ?? ?-- check columns
? ?? ?--
? ? update syscolumns set colstat = colstat & ~(@publish??| @nonsqlsub | @repldts)
? ?? ?? ? where colstat & (@publish??| @nonsqlsub | @repldts) > 0
? ? if (@@error <> 0)
? ?? ?goto FAILURE
? ?? ?--
? ?? ?--check tables/views/proc/fns and proc exec
? ?? ?--
? ?? ?UPDATE sysobjects SET replinfo = replinfo & ~ (@publish_bit | @replicate_bit | @filter | @schema_replicated | @procexec)
? ?? ?? ?? ?where replinfo &??(@publish_bit | @replicate_bit | @filter | @schema_replicated | @procexec)??> 0
? ? if (@@error <> 0)
? ?? ?goto FAILURE
? ?? ?--
? ?? ?-- all done
? ?? ?--
? ? end
? ? if @@trancount > 0
? ?? ?commit tran
? ? return 0
FAILURE:
??if @@trancount > 0
??begin
? ? rollback tran sp_MScleandb
? ? commit tran
??end
??return 1
??
end

GO[/code]
点“确定”。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
0 条回帖
需要登陆后才可进行回复 登录

返回顶部