sp_droparticle (Transact-SQL)

从快照发布或事务发布中删除一个项目。 如果项目存在一个或多个订阅,则不能删除该项目。 此存储过程在发布服务器的发布数据库中执行。

主题链接图标Transact-SQL 语法约定

语法

sp_droparticle [ @publication= ] 'publication'
        , [ @article= ] 'article'
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @force_invalidate_snapshot= ] force_invalidate_snapshot ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @from_drop_publication = ] from_drop_publication ]

参数

  • [ @publication=] 'publication'
    包含要删除的项目的发布名称。publication 的数据类型为 sysname,无默认值。

  • [ @article = ] 'article'
    要删除的项目的名称。article 的数据类型为 sysname,无默认值。

  • [ @ignore_distributor = ] ignore_distributor
    标识为仅供参考。不提供支持。不保证以后的兼容性。

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    确认此存储过程所执行的操作是否会使现有快照失效。force_invalidate_snapshot 的数据类型为 bit,默认值为 0

    0 指定对项目所做的更改不会导致快照失效。 如果该存储过程检测到更改确实需要新的快照,则会发生错误,并且不执行任何更改。

    1 指定对项目所做的更改可能会导致快照失效,如果存在需要新快照的现有订阅,则向其授予将现有快照标记为过时并生成新快照的权限。

  • [ @publisher= ] 'publisher'
    指定一个非 Microsoft SQL Server 发布服务器。publisher 是 sysname,默认值为 NULL。

    注意注意

    更改 SQL Server 发布服务器上的项目属性时,不应使用 publisher。

  • [ @from_drop_publication= ] from_drop_publication
    标识为仅供参考。不提供支持。不保证以后的兼容性。

返回代码值

0(成功)或 1(失败)

注释

sp_droparticle 用于快照复制和事务复制。

对于水平筛选的项目,sp_droparticle 将在 sysarticles (Transact-SQL) 表中检查项目的 type 列,以确定是否也应删除某个视图或筛选器。如果视图或筛选是自动生成的,则将其与项目一起删除。 如果是手动创建的,则不将其删除。

执行 sp_droparticle 从发布中删除项目时,不会删除发布数据库中的对象,也不会删除订阅数据库中的相应对象。 如果需要,请使用 DROP <object> 手动删除这些对象。

示例

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @article = N'Product'; 

-- Drop the transactional article.
USE [AdventureWorks2008R2]
EXEC sp_droparticle 
  @publication = @publication, 
  @article = @article,
  @force_invalidate_snapshot = 1;
GO

权限

只有 sysadmin 固定服务器角色的成员或 db_owner 固定数据库角色的成员才能执行 sp_droparticle