如何从Microsoft Sql Server数据库中删除所有事务发布?

regisbsb

我的数据库有很多使用Sql Server复制的表的订阅者。

当我尝试删除数据库中的表或删除参与已发布数据库的预订的列时,数据库迁移将失败。

这些订户检查他们的出版物是否仍然有效,如果不是,则重新订阅。

我需要通过T-SQL从当前数据库中删除所有发布,因此当我自动进行数据库迁移时,请删除列或表,而不会导致迁移失败并且不需要人工干预。

regisbsb

要从服务器删除所有事务发布,请在连接的数据库上运行以下脚本:

declare @PublicationName varchar(max)
declare @ArticleName varchar(max)
declare @SubscriberServerName varchar(max)
declare @DestinationDb varchar(max)

IF OBJECT_ID('dbo.syspublications') is not null
BEGIN
      DECLARE db_cursor CURSOR FOR  
            select  
                   sp.name as PublicationName 
                   ,sa.name as TableName 
                  , UPPER(srv.srvname) as SubscriberServerName  
                  , dest_db as DestinationDb
                  from dbo.syspublications sp  
                  join dbo.sysarticles sa on sp.pubid = sa.pubid 
                  join dbo.syssubscriptions s on sa.artid = s.artid 
                  join master.dbo.sysservers srv on s.srvid = srv.srvid 

      OPEN db_cursor   
      FETCH NEXT FROM db_cursor INTO @PublicationName, @ArticleName, @SubscriberServerName, @DestinationDb

      WHILE @@FETCH_STATUS = 0   
      BEGIN   
            -- Dropping the transactional subscriptions
            exec sp_dropsubscription @publication = @PublicationName, @subscriber = @SubscriberServerName, @destination_db = @DestinationDb, @article = N'all'

            -- Dropping the transactional articles
            exec sp_dropsubscription @publication = @PublicationName, @article = @ArticleName, @subscriber = N'all', @destination_db = N'all'

            exec sp_droparticle @publication = @PublicationName, @article = @ArticleName, @force_invalidate_snapshot = 1

            -- Dropping the transactional publication
            exec sp_droppublication @publication = @PublicationName

            FETCH NEXT FROM db_cursor INTO @PublicationName, @ArticleName, @SubscriberServerName, @DestinationDb
      END   

      CLOSE db_cursor   
      DEALLOCATE db_cursor
END

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使数据库自动提交所有事务

来自分类Dev

如何使用一个 SQL 查询从数据库中删除所有外部表?

来自分类Dev

如何在SQL Server的数据库中的所有表中搜索值

来自分类Dev

如何在SQL Server 2012中的数据库的所有表中搜索列名?

来自分类Dev

如何在SQL Server 2012中的数据库的所有表中搜索列名?

来自分类Dev

如何在SQL Server Management Studio中关闭与本地数据库的所有连接?

来自分类Dev

如何在SQL Server Management Studio中关闭与本地数据库的所有连接?

来自分类Dev

如何迭代和导出SQL Server数据库中的所有表?

来自分类Dev

从 Microsoft SQL 服务器管理工作室删除数据库中的所有表

来自分类Dev

在SQL Server 2014中查看所有事务日志

来自分类Dev

如何从MS SQL数据库(Microsoft SQL Server)中的其他.sql文件运行.sql文件?

来自分类Dev

如何插入数据库SQL事务?

来自分类Dev

如何删除所有表并重置Azure SQL数据库

来自分类Dev

跟踪Microsoft SQL Server数据库中的更改

来自分类Dev

如何从C#中的本地SQL Server数据库中删除行

来自分类Dev

如何从Firebird SQL数据库中删除大数据

来自分类Dev

删除SQL Server数据库中的所有表(少数几个除外)

来自分类Dev

删除SQL Server数据库中属于不同架构的所有对象?

来自分类Dev

如何从sql数据库中查询具有所有指定单词的歌曲?

来自分类Dev

如何在Microsoft Azure中的Sql数据库中存储数据

来自分类Dev

如何从数据库复制所有内容。SQL

来自分类Dev

如何从DataGridview的所有行更新Sql数据库?

来自分类Dev

如何删除SQL Server数据库,使其不出现在Management Studio中

来自分类Dev

如何在SQL Server Management Studio中删除数据库的内容?

来自分类Dev

如何在 SQL Server 中删除数据库架构和用户

来自分类Dev

如何删除我的 sql server 数据库中的重复行

来自分类Dev

如何备份Microsoft SQL Server数据库以创建多个100MB .bak文件

来自分类Dev

如何在Azure SQL数据库中记录所有查询事件

来自分类Dev

如何回滚SQL Server数据库中的数据?

Related 相关文章

  1. 1

    如何使数据库自动提交所有事务

  2. 2

    如何使用一个 SQL 查询从数据库中删除所有外部表?

  3. 3

    如何在SQL Server的数据库中的所有表中搜索值

  4. 4

    如何在SQL Server 2012中的数据库的所有表中搜索列名?

  5. 5

    如何在SQL Server 2012中的数据库的所有表中搜索列名?

  6. 6

    如何在SQL Server Management Studio中关闭与本地数据库的所有连接?

  7. 7

    如何在SQL Server Management Studio中关闭与本地数据库的所有连接?

  8. 8

    如何迭代和导出SQL Server数据库中的所有表?

  9. 9

    从 Microsoft SQL 服务器管理工作室删除数据库中的所有表

  10. 10

    在SQL Server 2014中查看所有事务日志

  11. 11

    如何从MS SQL数据库(Microsoft SQL Server)中的其他.sql文件运行.sql文件?

  12. 12

    如何插入数据库SQL事务?

  13. 13

    如何删除所有表并重置Azure SQL数据库

  14. 14

    跟踪Microsoft SQL Server数据库中的更改

  15. 15

    如何从C#中的本地SQL Server数据库中删除行

  16. 16

    如何从Firebird SQL数据库中删除大数据

  17. 17

    删除SQL Server数据库中的所有表(少数几个除外)

  18. 18

    删除SQL Server数据库中属于不同架构的所有对象?

  19. 19

    如何从sql数据库中查询具有所有指定单词的歌曲?

  20. 20

    如何在Microsoft Azure中的Sql数据库中存储数据

  21. 21

    如何从数据库复制所有内容。SQL

  22. 22

    如何从DataGridview的所有行更新Sql数据库?

  23. 23

    如何删除SQL Server数据库,使其不出现在Management Studio中

  24. 24

    如何在SQL Server Management Studio中删除数据库的内容?

  25. 25

    如何在 SQL Server 中删除数据库架构和用户

  26. 26

    如何删除我的 sql server 数据库中的重复行

  27. 27

    如何备份Microsoft SQL Server数据库以创建多个100MB .bak文件

  28. 28

    如何在Azure SQL数据库中记录所有查询事件

  29. 29

    如何回滚SQL Server数据库中的数据?

热门标签

归档