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 条回帖
需要登陆后才可进行回复 登录

返回顶部