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_MSgetlightweightmetadatabatch(uniqueidentifier @pubid, varbinary @artnickarray
, varbinary @rowguidarray)
MetaData:
create procedure sys.sp_MSgetlightweightmetadatabatch
@pubid uniqueidentifier,
@artnickarray varbinary(2000),
@rowguidarray varbinary(8000)
as
set nocount on
declare @pubnick int
declare @artnick int
declare @artnicklast int
declare @rowguid uniqueidentifier
declare @type tinyint
declare @retcode smallint
declare @artnickarraylength int
declare @artnickarrayidx int
declare @rowguidarrayidx int
declare @procname nvarchar(70)
declare @postfix nchar(32)
declare @rowvector varbinary(11)
declare @changedcolumns varbinary(128)
declare @artid uniqueidentifier
declare @columns_enumeration tinyint
declare @METADATA_TYPE_InsertLightweight tinyint
declare @METADATA_TYPE_UpdateLightweight tinyint
declare @METADATA_TYPE_DeleteLightweight tinyint
declare @METADATA_TYPE_UpsertLightweightProcessed tinyint
declare @METADATA_TYPE_DeleteLightweightProcessed tinyint
-- Security check
exec @retcode= sys.sp_MSreplcheck_subscribe
if @@error <> 0 or @retcode <> 0 return (1)
if (@artnickarray is null)
begin
raiserror(14043, 16, -1, '@artnickarray', 'sp_MSgetlightweightmetadatabatch')
return (1)
end
if (@rowguidarray is null)
begin
raiserror(14043, 16, -1, '@rowguidarray', 'sp_MSgetlightweightmetadatabatch')
return (1)
end
set @METADATA_TYPE_InsertLightweight= 7
set @METADATA_TYPE_UpdateLightweight= 8
set @METADATA_TYPE_DeleteLightweight= 10
set @METADATA_TYPE_UpsertLightweightProcessed= 11
set @METADATA_TYPE_DeleteLightweightProcessed= 12
set @artnicklast= 0
set @artnickarrayidx= 1
set @rowguidarrayidx= 1
set @artnickarraylength= datalength(@artnickarray)
select @pubnick = sync_info from dbo.MSmerge_replinfo where repid = @pubid
-- walk through arrays and populate temp table
while (@artnickarrayidx < @artnickarraylength)
begin
set @artnick= substring(@artnickarray, @artnickarrayidx, 4)
set @rowguid= substring(@rowguidarray, @rowguidarrayidx, 16)
-- find the stored proc that figures out the metadata type of the row
if @artnick <> @artnicklast
begin
select @artid= artid, @postfix= procname_postfix
from dbo.sysmergearticles
where pubid = @pubid and nickname = @artnick
select @procname= quotename('MSmerge_lws_sp_multi_' + @postfix)
set @artnicklast= @artnick
end
exec @retcode= @procname
@action= 3,
@rowguid= @rowguid,
@type= @type output,
@rowvector= @rowvector output,
@changedcolumns= @changedcolumns output,
@columns_enumeration= @columns_enumeration output
if @@error <>0 or @retcode <> 0 goto Failure
select @type as type,
@rowvector as rowvector,
@changedcolumns as changedcolumns,
@columns_enumeration as columns_enumeration
-- bump up offsets for next time through loop
set @artnickarrayidx = @artnickarrayidx + 4
set @rowguidarrayidx = @rowguidarrayidx + 16
end
return 0
Failure:
return 1
No comments:
Post a Comment