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_MSalreadyhavegeneration(uniqueidentifier @genguid, binary @subscribernick
, int @compatlevel)
MetaData:
create procedure sys.sp_MSalreadyhavegeneration (@genguid uniqueidentifier, @subscribernick binary(6), @compatlevel int = 10) -- backward compatibility level, default=Sphinx as declare @nicknames varbinary(1000) declare @offset int declare @retcode int declare @dbname sysname -- Security Checking -- PAL users have access exec @retcode = sys.sp_MSrepl_PAL_rolecheck if (@retcode <> 0) or (@@error <> 0) return 1 if (@genguid is null) begin RAISERROR(14043, 16, -1, '@genguid', 'sp_MSalreadyhavegeneration') return (1) end select @nicknames = nicknames from dbo.MSmerge_genhistory where guidsrc = @genguid if @nicknames is null begin set @dbname= db_name() -- what is the appropriate error to return? RAISERROR(21333, 16, -1, @dbname) return (1) end if @compatlevel < 90 set @subscribernick= substring(@subscribernick,1,4) + 0x0000 declare @replnicklength int set @replnicklength= col_length('sysmergesubscriptions', 'replnickname') set @offset= 1 while @offset < DATALENGTH(@nicknames) begin -- If the subscriber nickname is already in the list just return if substring(@nicknames, @offset, @replnicklength) = @subscribernick return (0) set @offset = @offset + @replnicklength end -- Subscriber nickname is not in the array. Add it so that we won't send this gen -- back down in the return message. (Would waste bandwidth...) -- Append guard byte set @offset = DATALENGTH(@nicknames) if substring(@nicknames, @offset, 1) <> 0xFF begin set @nicknames = @nicknames + 0xFF end if @nicknames = 0x0 set @nicknames = @subscribernick + 0xFF else set @nicknames = @subscribernick + @nicknames update dbo.MSmerge_genhistory set nicknames = @nicknames where guidsrc = @genguid return (0)
No comments:
Post a Comment