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_requestpeertopologyinfo(nvarchar @publication)MetaData:
create procedure sys.sp_requestpeertopologyinfo ( @publication sysname, @request_id int = NULL output ) as begin set nocount on declare @OPT_ENABLED_FOR_P2P int declare @retcode int, @cmd nvarchar(4000), @originator sysname, @originator_db sysname select @OPT_ENABLED_FOR_P2P = 0x1 select @cmd = NULL, @request_id = NULL, @originator = publishingservername(), @originator_db = db_name() -- Security Check exec @retcode = sys.sp_MSreplcheck_publish if @@error <> 0 or @retcode <> 0 begin return 1 end -- this procedure can not be executed in a user -- transaction because it needs to be in its own tran -- space (it can not be mixed with replicated cmds). -- -- we use this tmp table insert to force any implicit -- transaction (user may set IMPLICIT_TRANSACTIONs on) declare @check_tran table(col1 int) insert into @check_tran(col1) values (1) if @@trancount > 0 begin -- The procedure 'sp_requestpeerresponse' cannot be executed within a transaction. raiserror(15002, 16, -1, 'sp_requestpeertopologyinfo') return 1 end -- check this db is published if sys.fn_MSrepl_istranpublished(db_name(),0) <> 1 begin -- The database is not published. raiserror (18757, 16, -1) return 1 end -- check publication name if @publication is null begin -- The parameter @publication cannot be NULL. raiserror (14043, 16, -1, @publication, 'sp_requestpeertopologyinfo') return 1 end -- validate publication setting if not exists(select * from syspublications where (options & @OPT_ENABLED_FOR_P2P) = @OPT_ENABLED_FOR_P2P and name = @publication) begin -- The Peer-To-Peer publication ''%s'' does not exist. raiserror (20808, 16, -1, @publication) return 1 end begin transaction tr_sp_requestpeertopologyinfo save transaction tr_sp_requestpeertopologyinfo insert into MSpeer_topologyrequest ( publication ) values ( @publication ) if @@error <> 0 begin -- The procedure sys.sp_requestpeertopolgyinfo failed to INSERT into the resource MSpeer_topologyrequest. Server error = 0. raiserror (21499, 16, -1, 'sys.sp_requestpeertopolgyinfo', 'INSERT into', 'MSpeer_request.', @@error) goto FAILURE end select @request_id = scope_identity() insert into MSpeer_topologyresponse ( request_id, peer, peer_version, peer_db ) select distinct @request_id, UPPER(originator), originator_version, originator_db from MSpeer_lsns where originator_publication = @publication if @@error <> 0 begin -- The procedure sys.MSpeer_topologyrequest failed to INSERT into the resource MSpeer_topologyresponse Server error = 0. raiserror (21499, 16, -1, 'sys.MSpeer_topologyrequest', 'INSERT into', 'MSpeer_topologyresponse.', @@error) goto FAILURE end -- send logic to handle older servers with the command select @cmd = N'if object_id(N''sys.sp_MSpeersendtopologyinfo'', ''P'') is not null begin '+ N'exec sys.sp_MSpeersendtopologyinfo @request_id=' + cast(@request_id as nvarchar) + N',@originator=N' + quotename(@originator, '''') + N',@originator_db=N' + quotename(@originator_db, '''') + N',@originator_publication=N' + quotename(@publication, '''') + -- if the server is old, send the apply command back with no connection info N' end else begin declare @cmd nvarchar(max) select @cmd = N'''+ N'if object_id(N''''sys.sp_MSpeerapplytopologyinfo'''', ''''P'''') is not null ' + N'begin ' + N'exec sys.sp_MSpeerapplytopologyinfo @request_id=' + cast(@request_id as nvarchar) + N',@originator=N''' + quotename(@originator, '''') + N'''' + N',@originator_db=N''' + quotename(@originator_db, '''') + N'''' + N',@response_srvr=N''+quotename(publishingservername(), '''''''')+N''' + N',@response_db=N''+quotename(db_name(), '''''''') + N''' + N',@response_srvr_version= @@microsoftversion ' + N',@response_originator_id = NULL ' + N',@response_conflict_retention = NULL ' + N'end' + N''' exec sys.sp_MSpeertopeerfwdingexec @command = @cmd, @publication = N'+quotename(@publication, '''')+N', @execute = 0 end' exec @retcode = sys.sp_MSpeertopeerfwdingexec @command = @cmd, @publication = @publication, @execute = 1, @change_results_originator = 1 if @@error <> 0 or @retcode <> 0 goto FAILURE commit transaction tr_sp_requestpeertopologyinfo return 0 FAILURE: rollback transaction tr_sp_requestpeertopologyinfo commit transaction return 1 end
No comments:
Post a Comment