none
sqlserver 2008 R2删除同步后,如何清理系统生成的存储过程 RRS feed

  • 问题

  • 大家好:

    sqlserver 2008 R2删除同步后,如何清理系统生成的sp_MSins_、sp_MSupd_、sp_MSdel_打头的所有存储过程?proc太多,怕误删!

    2012年7月2日 3:57

答案

  • 和楼上想法差不多,我前天就这么干的!没有想到更好的办法,结果来看,没有什么问题!

    SELECT  'drop proc dbo.'+name  FROM sys.procedures
    WHERE name LIKE 'sp_MSupd_%'
    UNION ALL
    SELECT 'drop proc dbo.'+name FROM sys.procedures
    WHERE name LIKE 'sp_MSdel_%'
    UNION ALL
    SELECT 'drop proc dbo.'+name FROM sys.procedures
    WHERE name LIKE 'sp_MSins_%'
    go

    • 已标记为答案 ocpyang 2012年7月3日 5:34
    2012年7月3日 5:33

全部回复

  • Should be deleted if you remove publisher/subscriber properly.
    2012年7月2日 4:46
  • 确实应该会自动删除!但是现在没有自动删除,是否有其它办法,可以自动找出并删除!

    2012年7月2日 4:56
  • 大家好:

    sqlserver 2008 R2删除同步后,如何清理系统生成的sp_MSins_、sp_MSupd_、sp_MSdel_打头的所有存储过程?proc太多,怕误删!

    我想这句可能会对你有所帮助,但你仍然需要人工再次确认:
    select * from sys.procedures where name like 'sp_MS[upd\ins\del]%'



    • 已编辑 nicofer 2012年7月2日 7:39
    2012年7月2日 7:31
  • 还要删除msrepl_tran_version字段吧,同步所用的字段

    给我写信: QQ我:点击这里给我发消息

    2012年7月2日 8:25
  • 和楼上想法差不多,我前天就这么干的!没有想到更好的办法,结果来看,没有什么问题!

    SELECT  'drop proc dbo.'+name  FROM sys.procedures
    WHERE name LIKE 'sp_MSupd_%'
    UNION ALL
    SELECT 'drop proc dbo.'+name FROM sys.procedures
    WHERE name LIKE 'sp_MSdel_%'
    UNION ALL
    SELECT 'drop proc dbo.'+name FROM sys.procedures
    WHERE name LIKE 'sp_MSins_%'
    go

    • 已标记为答案 ocpyang 2012年7月3日 5:34
    2012年7月3日 5:33