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_MSupdategenhistory(uniqueidentifier @guidsrc, uniqueidentifier @pubid
, bigint @gen
, int @art_nick
, int @is_ssce_empty_sync
, smallint @publication_number
, int @partition_id)
MetaData:
create procedure sys.sp_MSupdategenhistory
(@guidsrc uniqueidentifier,
@pubid uniqueidentifier,
@gen bigint,
@art_nick int = NULL,
@is_ssce_empty_sync int = 0,
@publication_number smallint = NULL,
@partition_id int = NULL)
as
--
-- Check to see if current publication has permission
--
declare @retcode int
, @changecount int
if ({fn ISPALUSER(@pubid)} <> 1)
begin
if (@pubid is NULL)
begin
RAISERROR (21723, 16, -1, 'sp_MSupdategenhistory')
return 1
end
else
begin
RAISERROR (14126, 11, -1)
return 1
end
end
if (@guidsrc is null)
begin
RAISERROR(14043, 16, -1, '@guidsrc', 'sp_MSupdategenhistory')
return (1)
end
if @art_nick = 0 set @art_nick = NULL
set @changecount = 0
begin tran
save tran sp_MSupdategenhistory
exec @retcode = sys.sp_MSget_gen_approx_changecount @gen, @changecount OUTPUT
if @retcode <> 0 or @@error <> 0
goto FAILURE
-- If changecount is zero and this is a upload from ssce then delete the generation.
-- This prevents uploading of empty generations.
if @changecount = 0 and @is_ssce_empty_sync = 1
begin
delete from dbo.MSmerge_genhistory where generation = @gen
commit
return (0)
end
if @partition_id is null
begin
exec @retcode = sys.sp_MSmap_generation_to_partitionids @gen, @art_nick
if @retcode <> 0 or @@error <> 0
goto FAILURE
end
else
begin
insert into dbo.MSmerge_generation_partition_mappings with (rowlock)
(publication_number, partition_id, generation, changecount)
values (@publication_number, @partition_id, @gen, @changecount)
if @@error <> 0
goto FAILURE
end
update dbo.MSmerge_genhistory with (rowlock)
set genstatus = 2,
art_nick = case when isnull(@art_nick,0) <> 0 then @art_nick else art_nick end,
coldate= getdate(),
changecount = @changecount
where generation = @gen -- and guidsrc = @guidsrc
if @@rowcount = 0
begin
declare @replnick binary(6)
declare @nickbin binary(8)
exec sys.sp_MSgetreplnick @replnick = @replnick out
if @@ERROR<>0 goto FAILURE
-- Append guard byte
set @nickbin= @replnick + 0xFF
set identity_insert dbo.MSmerge_genhistory on
insert into dbo.MSmerge_genhistory with (rowlock)
(guidsrc, genstatus, generation, art_nick, nicknames, coldate)
values (@guidsrc, 2, @gen, @art_nick, @nickbin , getdate())
if @@ERROR<>0 goto FAILURE
set identity_insert dbo.MSmerge_genhistory off
end
commit
return (0)
FAILURE:
rollback tran sp_MSupdategenhistory
commit tran
RAISERROR(25021, 16, -1, @gen)
return(1)
No comments:
Post a Comment