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_MSreset_subscription(nvarchar @publisher, nvarchar @publisher_db
, nvarchar @publication
, nvarchar @subscriber
, nvarchar @subscriber_db
, int @subscription_type)
MetaData:
CREATE PROCEDURE sys.sp_MSreset_subscription
(
@publisher sysname,
@publisher_db sysname,
@publication sysname,
@subscriber sysname,
@subscriber_db sysname,
@subscription_type int -- have to have it to identify a distribution agent.
)
AS
begin
SET NOCOUNT ON
--
-- Declarations.
--
DECLARE @retcode int
DECLARE @publisher_id smallint
DECLARE @subscriber_id smallint
DECLARE @virtual smallint
DECLARE @virtual_anonymous smallint
declare @anonymous_subtype smallint
declare @publication_id int
declare @immediate_sync bit
--
-- security check
-- only db_owner can execute this
--
if (is_member ('db_owner') != 1)
begin
raiserror(14260, 16, -1)
return (1)
end
--
-- Initializations
--
select @virtual = -1
select @virtual_anonymous = -2
select @anonymous_subtype = 2
select @publisher_id = srvid from master.dbo.sysservers where
UPPER(srvname) = UPPER(@publisher)
select @subscriber_id = srvid from master.dbo.sysservers where
UPPER(srvname) = UPPER(@subscriber)
select @publication_id = publication_id, @immediate_sync = immediate_sync
from dbo.MSpublications where
publisher_id = @publisher_id AND
publisher_db = @publisher_db AND
publication = @publication
if @subscriber is NULL
select @subscriber_id = @virtual
-- No need to have 2 updates in one transaction.
if @immediate_sync = 1
begin
UPDATE MSdistribution_agents SET subscription_guid = newid()
WHERE
publisher_id = @publisher_id AND
publisher_db = @publisher_db AND
publication = @publication and
subscriber_id = @subscriber_id and
subscriber_db = @subscriber_db and
subscription_type = @subscription_type
IF @@ERROR <> 0
GOTO UNDO
if @subscriber_id = @virtual
begin
-- reset the partial snapshot progress of all anonymous
-- agents associated with this virtual subscription
update dbo.MSdistribution_agents
set reset_partial_snapshot_progress = 1
where
publisher_id = @publisher_id AND
publisher_db = @publisher_db AND
publication = @publication and
subscriber_id <> @virtual and
subscriber_id <> @virtual_anonymous and
subscription_type = @anonymous_subtype
end
end
UPDATE dbo.MSsubscriptions set subscription_time = getdate()
WHERE
publisher_id = @publisher_id AND
publisher_db = @publisher_db AND
publication_id = @publication_id and
subscriber_id = @subscriber_id and
subscriber_db = @subscriber_db and
subscription_type = @subscription_type
IF @@ERROR <> 0
GOTO UNDO
RETURN(0)
UNDO:
return(1)
end
No comments:
Post a Comment