54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
declare @Formats TABLE
 | 
						|
(
 | 
						|
	FormatID int,
 | 
						|
	Name nvarchar(50),
 | 
						|
	Description nvarchar(255),
 | 
						|
	StyleType int,
 | 
						|
	DocStyle nvarchar(255)
 | 
						|
)
 | 
						|
insert into @Formats
 | 
						|
select FormatID,Name,Description, 10000 + xDocStyle.value('@Index', 'int') StyleType, 
 | 
						|
	xDocStyle.value('@Name', 'nvarchar(255)') DocStyle from Formats
 | 
						|
	cross apply data.nodes('//DocStyle') tDocStyle(xDocStyle)
 | 
						|
	Where xDocStyle.value('@Name', 'nvarchar(255)') like 'Document Cover%' and name like 'Wst%'
 | 
						|
 | 
						|
declare @DocCoverSheets Table
 | 
						|
(
 | 
						|
	ItemID int primary Key,
 | 
						|
	ContentID int,
 | 
						|
	PreviousID int,
 | 
						|
	NextID int,
 | 
						|
	PartContentID int
 | 
						|
)
 | 
						|
insert into @DocCoverSheets
 | 
						|
select VI.ItemID, VI.ContentID, ii.PreviousID, ip.ItemID, pp.ContentID from Contents CC
 | 
						|
JOIN VEFN_GetVersionFormatItems('') VI ON VI.ContentID = CC.ContentID
 | 
						|
JOIN VEFN_GETVERSIONNAMES() VN ON VI.VERSIONID = VN.VERSIONID
 | 
						|
Join @Formats FF ON FF.FormatID = VI.FormatID and CC.Type = FF.StyleType
 | 
						|
Join Items II ON VI.ItemID = II.ItemID
 | 
						|
Left Join Parts PP on PP.ItemID = VI.ItemID
 | 
						|
Left Join Items IP on IP.PreviousID = VI.ItemID
 | 
						|
Where CC.Type Between 10000 and 19999
 | 
						|
 | 
						|
select * from @docCoverSheets
 | 
						|
 | 
						|
Update TR Set TR.ToID = TT.NextID, TR.RangeID = TT.NextID
 | 
						|
From  Transitions TR
 | 
						|
Join @DocCoverSheets TT ON TT.ItemID = TR.TOID
 | 
						|
 | 
						|
 | 
						|
-- Update Items for NextID
 | 
						|
 | 
						|
Update II Set PreviousID = TT.PreviousID
 | 
						|
from Items II Join @DocCoverSheets TT ON II.ItemID = TT.NextID
 | 
						|
 | 
						|
-- Update Parts for PartContentID and ItemID
 | 
						|
 | 
						|
Update PP Set ItemID = TT.NextID
 | 
						|
from Parts PP Join @DocCoverSheets TT ON TT.ItemID = PP.ItemID and TT.PartContentID = pp.ContentID
 | 
						|
 | 
						|
--Delete Doc Cover Sheet Items
 | 
						|
 | 
						|
Delete From tblItems where ItemID in (select ItemID from @DocCoverSheets)
 | 
						|
 |