The meta data is from an SQL 2012 Server.
I have posted alot more, find the whole list here.
Goto Definition or MetaData
Definition:
sys.sp_removedistpublisherdbreplication(nvarchar @publisher, nvarchar @publisher_db)
MetaData:
CREATE PROCEDURE sys.sp_removedistpublisherdbreplication
(
@publisher sysname,
@publisher_db sysname
)
AS
BEGIN
DECLARE @retcode int,
@publisher_id int,
@publication_id int,
@publication sysname,
@subscriber sysname,
@subscriber_id int,
@subscriber_db sysname,
@article_id int,
@article sysname
-- Security Check: require sysadmin/dbo of dist
IF IS_MEMBER('db_owner') != 1
BEGIN
RAISERROR(21089,16,-1)
RETURN 1
END
-- database must be distribution db
IF sys.fn_MSrepl_isdistdb(DB_NAME()) <> 1
BEGIN
RAISERROR (21482, 16, -1, 'sp_removedistpublisherdbreplication', 'distribution')
RETURN 1
END
-- retrieve the publisher_id
SELECT @publisher_id = srvid
FROM master.dbo.sysservers
WHERE UPPER(srvname) = UPPER(@publisher)
BEGIN TRANSACTION
SAVE TRANSACTION drop_publisherdb_metadata
-- drop all subscriptions associated with the pub/pubdb
DECLARE #cursorSubscriptions CURSOR LOCAL FAST_FORWARD FOR
SELECT DISTINCT msp.publication,
mss.article_id,
msa.article,
msyss.srvname,
mss.subscriber_db
FROM MSsubscriptions mss
JOIN MSpublications msp
ON mss.publisher_id = msp.publisher_id
AND mss.publisher_db = msp.publisher_db
AND mss.publication_id = msp.publication_id
JOIN master.dbo.sysservers msyss
ON msyss.srvid = mss.subscriber_id
JOIN MSarticles msa
ON mss.publisher_id = msa.publisher_id
AND mss.publisher_db = msa.publisher_db
AND mss.publication_id = msa.publication_id
AND mss.article_id = msa.article_id
WHERE mss.publisher_id = @publisher_id
AND mss.publisher_db = @publisher_db
FOR READ ONLY
OPEN #cursorSubscriptions
FETCH #cursorSubscriptions INTO @publication, @article_id, @article, @subscriber, @subscriber_db
WHILE @@FETCH_STATUS != -1
BEGIN
EXEC @retcode = sys.sp_MSdrop_subscription @publisher = @publisher,
@publisher_db = @publisher_db,
@subscriber = @subscriber,
@article_id = @article_id,
@subscriber_db = @subscriber_db,
@publication = @publication,
@article = @article
IF @@ERROR != 0 OR @retcode != 0
GOTO UNDO
FETCH #cursorSubscriptions INTO @publication, @article_id, @article, @subscriber, @subscriber_db
END
CLOSE #cursorSubscriptions
DEALLOCATE #cursorSubscriptions
-- drop all articles associated with the pub/pubdb
DECLARE #cursorArticles CURSOR LOCAL FAST_FORWARD FOR
SELECT DISTINCT msp.publication,
msa.article
FROM MSpublications msp
JOIN MSarticles msa
ON msp.publisher_id = msa.publisher_id
AND msp.publisher_db = msa.publisher_db
AND msp.publication_id = msa.publication_id
WHERE msp.publisher_id = @publisher_id
AND msp.publisher_db = @publisher_db
FOR READ ONLY
OPEN #cursorArticles
FETCH #cursorArticles INTO @publication, @article
WHILE @@FETCH_STATUS != -1
BEGIN
EXEC @retcode = sys.sp_MSdrop_article @publisher = @publisher,
@publisher_db = @publisher_db,
@publication = @publication,
@article = @article
IF @@ERROR != 0 OR @retcode != 0
GOTO UNDO
FETCH #cursorArticles INTO @publication, @article
END
CLOSE #cursorArticles
DEALLOCATE #cursorArticles
-- drop all publications associated with the pub/pubdb
DECLARE #cursorPublications CURSOR LOCAL FAST_FORWARD FOR
SELECT DISTINCT msp.publication
FROM MSpublications msp
WHERE msp.publisher_id = @publisher_id
AND msp.publisher_db = @publisher_db
FOR READ ONLY
OPEN #cursorPublications
FETCH #cursorPublications INTO @publication
WHILE @@FETCH_STATUS != -1
BEGIN
EXEC @retcode = sys.sp_MSdrop_publication @publisher = @publisher,
@publisher_db = @publisher_db,
@publication = @publication
IF @@ERROR != 0 OR @retcode != 0
GOTO UNDO
FETCH #cursorPublications INTO @publication
END
CLOSE #cursorPublications
DEALLOCATE #cursorPublications
-- drop all jobs associated with the pub/pubdb that remain
EXEC @retcode = sys.sp_MSforce_drop_distribution_jobs @publisher = @publisher,
@publisher_db = @publisher_db
,@type = N'tran'
IF @@ERROR <> 0 OR @retcode <> 0
BEGIN
GOTO UNDO
END
COMMIT TRANSACTION drop_publisherdb_metadata
RETURN 0
UNDO:
ROLLBACK TRANSACTION drop_publisherdb_metadata
COMMIT TRANSACTION
RETURN 1
END
No comments:
Post a Comment