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_MSdeletepeerconflictrow(nvarchar @originator_id, nvarchar @origin_datasource
, nvarchar @tran_id
, nvarchar @row_id
, nvarchar @conflict_table)
MetaData:
create procedure sys.sp_MSdeletepeerconflictrow
(
@originator_id nvarchar(32) = '%' ,-- int
@origin_datasource nvarchar(255) = '%', -- int
@tran_id nvarchar(40) = '%', -- varbinary(16)
@row_id nvarchar(19) = '%', -- timestamp
@conflict_table nvarchar(270)
)
as
begin
set nocount on
declare @retcode int
,@cmd nvarchar(4000)
,@startoffset int
,@table sysname
,@schema sysname
,@whcmd nvarchar(4000) = N'(__$row_id is not null) '
--
-- Security check. restrict to 'sysadmin' and member of db_owner role
--
exec @retcode = sys.sp_MSreplcheck_publish
if @@ERROR <> 0 or @retcode <> 0
return (1)
if (@conflict_table is NULL)
begin
raiserror(14043, 16, 1, '@conflict_table', 'sp_MSdeletepeerconflictrow')
return (1)
end
--
-- check if the conflict table is owner qualified
-- and build the delete string as necessary
--
select @table = PARSENAME(@conflict_table, 1),
@schema = PARSENAME(@conflict_table, 2)
begin tran
save tran tr_deletepeerconflictrow
if (@row_id != N'%') -- delete the corresponding winner or loser record
begin
select @cmd = N'delete ' + ISNULL(NULLIF(QUOTENAME(@schema) + N'.', N'.'), N'') + QUOTENAME(@table) + N'
where __$row_id in (
select __$row_id
from ' + ISNULL(NULLIF(QUOTENAME(@schema) + N'.', N'.'), N'') + QUOTENAME(@table) + N'
where __$change_id = ' + @row_id + N'
union
select __$change_id
from ' + ISNULL(NULLIF(QUOTENAME(@schema) + N'.', N'.'), N'') + QUOTENAME(@table) + N'
where __$row_id = ' + @row_id + N' and __$change_id is not null)'
execute (@cmd)
if @@error <> 0
goto UNDO
end
select @cmd = 'delete ' + ISNULL(NULLIF(QUOTENAME(@schema) + N'.', N'.'), N'') + QUOTENAME(@table)
if (@originator_id != N'%')
begin
select @whcmd = @whcmd + N' and __$originator_id = ' + QUOTENAME(@originator_id, '''')
end
if (@origin_datasource != N'%')
begin
select @whcmd = @whcmd + N' and __$origin_datasource = ' + QUOTENAME(@origin_datasource, '''')
end
if (@tran_id != N'%')
begin
select @whcmd = @whcmd + N' and __$tranid = ' + QUOTENAME(@tran_id, '''')
end
if (@row_id != N'%')
begin
select @whcmd = @whcmd + N' and __$row_id = ' + @row_id -- delete the specified record: either loser or winner
end
select @cmd = @cmd + N' where ' + @whcmd
execute (@cmd)
if @@error <> 0
goto UNDO
commit tran
return (0)
UNDO:
rollback tran tr_deletepeerconflictrow
commit tran
raiserror(21542, 16, 1, @@error, 'sp_MSdeletepeerconflictrow')
return (1)
end
No comments:
Post a Comment