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_MSenumpartialchanges(int @maxrows, nvarchar @temp_cont
, int @tablenick
, uniqueidentifier @rowguid
, uniqueidentifier @pubid
, int @compatlevel
, bit @return_count_of_rows_initially_enumerated
, bit @enumentirerowmetadata
, bit @blob_cols_at_the_end
, uniqueidentifier @maxschemaguidforarticle)
MetaData:
-- This is similiar to sp_MSEnumChanges, except @temp_cont (generated by sp_MSsetupbelongs) -- is used instead of MSMerge_Contents plus genlist,maxgen,mingen -- And @rowguid as input is used as marker create procedure sys.sp_MSenumpartialchanges (@maxrows int, @temp_cont sysname, @tablenick int, @rowguid uniqueidentifier, @pubid uniqueidentifier = NULL, @compatlevel int = 10, -- backward compatibility level, default=Sphinx @return_count_of_rows_initially_enumerated bit = 0, @enumentirerowmetadata bit= 1, @blob_cols_at_the_end bit=0, @maxschemaguidforarticle uniqueidentifier=NULL) as declare @retcode smallint declare @tnstring nvarchar(12) -- Owner qualified declare @procname nvarchar(270) declare @error int declare @count_of_rows_initially_enumerated int declare @objid int declare @objid_str nvarchar(15) declare @sync_objid int declare @sync_objid_str nvarchar(15) declare @colid int declare @rowguid_clause nvarchar(200) -- Security Checking -- PAL user has access exec @retcode = sys.sp_MSrepl_PAL_rolecheck @pubid = @pubid, @tablenick = @tablenick if (@retcode <> 0) or (@@error <> 0) return 1 if (@tablenick is null) begin RAISERROR(14043, 16, -1, '@tablenick', 'sp_MSenumpartialchanges') return (1) end set @tnstring = convert(nchar, @tablenick) if @rowguid is null or @rowguid = '00000000-0000-0000-0000-000000000000' select @rowguid_clause = ' ' else select @rowguid_clause = ' and rowguid > ''' + convert(nchar(36), @rowguid) + ''' ' create table #cont ( tablenick int NOT NULL, rowguid uniqueidentifier NOT NULL, generation bigint NULL, lineage varbinary(311) NULL, colv1 varbinary(2953) NULL) select @procname = 'dbo.' + select_proc, @objid=objid, @sync_objid=sync_objid from dbo.sysmergearticles where nickname=@tablenick and pubid = @pubid if @@rowcount=0 return 1 select @objid_str = convert(nvarchar, @objid) if @@rowcount=0 return 1 select @sync_objid_str = convert(nvarchar, @sync_objid) if @@rowcount=0 return 1 declare @selecttop nvarchar(50) if (@maxrows = 0) set @selecttop= 'select' else set @selecttop= 'select top ' + cast(@maxrows as nvarchar(9)) declare @metadatacols nvarchar(300) if 0 = @enumentirerowmetadata set @metadatacols= 'generation, null, null' else if @compatlevel >= 90 set @metadatacols= 'generation, lineage, colv' else if sys.fn_fIsColTracked(@tablenick) = 1 begin declare @cCols int set @cCols= sys.fn_cColvEntries_80(@pubid, @tablenick) set @metadatacols= 'generation, {fn LINEAGE_90_TO_80(lineage)}, {fn COLV_90_TO_80(colv,' + cast(@cCols as nvarchar(6)) +')}' end else set @metadatacols= 'generation, {fn LINEAGE_90_TO_80(lineage)}, colv' execute ('insert into #cont(tablenick, rowguid, generation,lineage,colv1) ' + @selecttop + ' tablenick, rowguid, ' + @metadatacols + ' from ' + @temp_cont + ' where tablenick = ' + @tnstring + @rowguid_clause + ' order by rowguid') select @count_of_rows_initially_enumerated = @@rowcount, @error = @@error if @error <> 0 begin return (1) end if @return_count_of_rows_initially_enumerated = 1 select @count_of_rows_initially_enumerated -- Optimize: check colid is valid for the article in this publication or as currently we rely on sel_sp to pick right colid exec @retcode= @procname @maxschemaguidforarticle = @maxschemaguidforarticle, @type= 3, -- for partial changes (horizontal filter) @enumentirerowmetadata= @enumentirerowmetadata, @blob_cols_at_the_end=@blob_cols_at_the_end IF @@ERROR<>0 or @retcode<>0 begin RETURN (1) end drop table #cont return (0)
No comments:
Post a Comment