Drops an article from a snapshot or transactional publication. An article cannot be removed if one or more subscriptions to it exist. This stored procedure is executed at the Publisher on the publication database.
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'
Is the name of the publication that contains the article to be dropped. publication is sysname, with no default.
- [ @article=] 'article'
Is the name of the article to be dropped. article is sysname, with no default.
- [ @ignore_distributor =] ignore_distributor
For internal use only.
- [ @force_invalidate_snapshot = ] force_invalidate_snapshot
Acknowledges that the action taken by this stored procedure may invalidate an existing snapshot. force_invalidate_snapshot is a bit, with a default of 0.
0 specifies that changes to the article do not cause the snapshot to be invalid. If the stored procedure detects that the change does require a new snapshot, an error occurs and no changes are made.
1 specifies that changes to the article may cause the snapshot to be invalid, and if there are existing subscriptions that would require a new snapshot, gives permission for the existing snapshot to be marked as obsolete and a new snapshot generated.
- [ @publisher= ] 'publisher'
Specifies a non-Microsoft SQL Server Publisher. publisher is sysname, with a default of NULL.
Note: publisher should not be used when changing article properties on a SQL Server Publisher.
- [ @from_drop_publication= ] from_drop_publication
For internal use only.
sp_droparticle is used in snapshot and transactional replication.
For horizontally filtered articles, sp_droparticle checks the type column of the article in the sysarticles (Transact-SQL) table to determine whether a view or filter should also be dropped. If a view or filter was autogenerated, it is dropped with the article. If it was manually created, it is not dropped.
Executing sp_droparticle to drop an article from a publication does not remove the object from the publication database or the corresponding object from the subscription database. Use
DROP <object> to manually remove these objects if necessary.
DECLARE @publication AS sysname; DECLARE @article AS sysname; SET @publication = N'AdvWorksProductTran'; SET @article = N'Product'; -- Drop the transactional article. USE [AdventureWorks] EXEC sp_droparticle @publication = @publication, @article = @article, @force_invalidate_snapshot = 1; GO
Replication Stored Procedures (Transact-SQL)
Other ResourcesHow to: Delete an Article (Replication Transact-SQL Programming)
Adding Articles to and Dropping Articles from Existing Publications