124 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
/*
 | 
						|
Volian Enterprises, Inc.
 | 
						|
Script to fix RO Problems
 | 
						|
*/
 | 
						|
/* This is equivalent to the FindROProblems query
 | 
						|
select vn.versionid, ParentName, FolderName, aa.rofstid, rf.rodbid, ru.rodbid Urodbid, Count(*) Problems
 | 
						|
from vefn_getversionnames() vn
 | 
						|
join vefn_getversionitems('') vi on vn.versionid = vi.versionid
 | 
						|
join rousages ru on ru.contentid = vi.contentid
 | 
						|
join associations aa on aa.versionid = vn.versionid
 | 
						|
join rofsts rf on rf.rofstid = aa.rofstid
 | 
						|
where rf.rodbid <> ru.rodbid
 | 
						|
group by vn.versionid, ParentName, FolderName, aa.rofstid, rf.rodbid, ru.rodbid
 | 
						|
 | 
						|
select vn.versionid, ParentName, FolderName, aa.rofstid, rf.rodbid, dru.rodbid Urodbid, Count(*) Problems
 | 
						|
from vefn_getversionnames() vn
 | 
						|
join vefn_getversionitems('') vi on vn.versionid = vi.versionid
 | 
						|
join entries ee on ee.contentID = vi.contentID
 | 
						|
join drousages dru on dru.docid = ee.docid
 | 
						|
join associations aa on aa.versionid = vn.versionid
 | 
						|
join rofsts rf on rf.rofstid = aa.rofstid
 | 
						|
where rf.rodbid <> dru.rodbid
 | 
						|
group by vn.versionid, ParentName,FolderName, aa.rofstid, rf.rodbid, dru.rodbid
 | 
						|
GO
 | 
						|
*/
 | 
						|
EXECUTE [vesp_TurnChangeManagerOFF] 
 | 
						|
GO
 | 
						|
 | 
						|
PRINT 'Build @ProblemROUsages'
 | 
						|
DECLARE @ProblemROUsages table(
 | 
						|
	ROUsageID int primary key,
 | 
						|
	ContentID int,
 | 
						|
	RODBID int,
 | 
						|
	URODBID int
 | 
						|
)
 | 
						|
Insert Into @ProblemROUsages 
 | 
						|
select ru.ROUsageID, RU.ContentID, rf.rodbid, ru.rodbid Urodbid 
 | 
						|
from vefn_getversionnames() vn
 | 
						|
join vefn_getversionitems('') vi on vn.versionid = vi.versionid
 | 
						|
join rousages ru on ru.contentid = vi.contentid
 | 
						|
join associations aa on aa.versionid = vn.versionid
 | 
						|
join rofsts rf on rf.rofstid = aa.rofstid
 | 
						|
where rf.rodbid <> ru.rodbid
 | 
						|
 | 
						|
--select * from @ProblemROUsages
 | 
						|
 | 
						|
PRINT 'Build @ProblemDROUsages'
 | 
						|
DECLARE @ProblemDROUsages table(
 | 
						|
	DROUsageID int primary key,
 | 
						|
	RODBID int,
 | 
						|
	URODBID int
 | 
						|
)
 | 
						|
Insert Into @ProblemDROUsages 
 | 
						|
select distinct dru.dROUsageID,  rf.rodbid, dru.rodbid Urodbid
 | 
						|
from vefn_getversionnames() vn
 | 
						|
join vefn_getversionitems('') vi on vn.versionid = vi.versionid
 | 
						|
join entries ee on ee.ContentID=vi.ContentID
 | 
						|
join drousages dru on dru.docid = ee.DocID
 | 
						|
join associations aa on aa.versionid = vn.versionid
 | 
						|
join rofsts rf on rf.rofstid = aa.rofstid
 | 
						|
where rf.rodbid <> dru.rodbid
 | 
						|
 | 
						|
--Select * from @ProblemDROUsages
 | 
						|
 | 
						|
 | 
						|
-- Contents - replacing rodbid's in content records' link text, for the input version
 | 
						|
PRINT 'Process Contents'
 | 
						|
update CC
 | 
						|
set text = replace(text, 
 | 
						|
  ' ' + cast(pru.URODBID as nvarchar(10)) + '[END>', 
 | 
						|
	' ' + cast(pru.RODBID as nvarchar(10)) + '[END>')
 | 
						|
from contents CC join @ProblemROUsages PRU ON CC.ContentID = PRU.ContentID
 | 
						|
 | 
						|
 | 
						|
-- Grids - replacing rodbid's in grid records' link text
 | 
						|
PRINT 'Process Grids'
 | 
						|
update GG
 | 
						|
set data = cast(replace(cast(data as nvarchar(max)), 
 | 
						|
  ' ' + cast(pru.URODBID as nvarchar(10)) + '[END>', 
 | 
						|
	' ' + cast(pru.RODBID as nvarchar(10)) + '[END>') as xml)
 | 
						|
from grids GG join @ProblemROUsages PRU ON GG.ContentID = PRU.ContentID
 | 
						|
 | 
						|
-- ROUsages - updating rousage records with correct rodbid
 | 
						|
PRINT 'Process ROUsages'
 | 
						|
update RU
 | 
						|
set rodbid = PRU.rodbid
 | 
						|
From rousages RU Join @ProblemROUsages PRU ON RU.ROUsageID=pru.ROUsageID
 | 
						|
 | 
						|
-- DROUsages - updating rousage records with correct rodbid
 | 
						|
PRINT 'Process DROUsages'
 | 
						|
update DRU
 | 
						|
set rodbid = PDRU.rodbid
 | 
						|
From drousages DRU Join @ProblemDROUsages PDRU ON DRU.DROUsageID=pdru.DROUsageID
 | 
						|
 | 
						|
-- ROFSTs - Update RODBID to 2 from 3
 | 
						|
-- Associations - No Change
 | 
						|
-- ROImages - No Change
 | 
						|
-- Figures - Insert duplicate records for figures
 | 
						|
-- Remove unused RODBs
 | 
						|
GO
 | 
						|
EXECUTE [vesp_TurnChangeManagerON] 
 | 
						|
GO
 | 
						|
/*
 | 
						|
This is equivalent to FindROProblems query 
 | 
						|
select vn.versionid, ParentName, FolderName, aa.rofstid, rf.rodbid, ru.rodbid Urodbid, Count(*) Problems
 | 
						|
from vefn_getversionnames() vn
 | 
						|
join vefn_getversionitems('') vi on vn.versionid = vi.versionid
 | 
						|
join rousages ru on ru.contentid = vi.contentid
 | 
						|
join associations aa on aa.versionid = vn.versionid
 | 
						|
join rofsts rf on rf.rofstid = aa.rofstid
 | 
						|
where rf.rodbid <> ru.rodbid
 | 
						|
group by vn.versionid, ParentName, FolderName, aa.rofstid, rf.rodbid, ru.rodbid
 | 
						|
 | 
						|
select vn.versionid, ParentName, FolderName, aa.rofstid, rf.rodbid, dru.rodbid Urodbid, Count(*) Problems
 | 
						|
from vefn_getversionnames() vn
 | 
						|
join vefn_getversionitems('') vi on vn.versionid = vi.versionid
 | 
						|
join entries ee on ee.contentID = vi.contentID
 | 
						|
join drousages dru on dru.docid = ee.docid
 | 
						|
join associations aa on aa.versionid = vn.versionid
 | 
						|
join rofsts rf on rf.rofstid = aa.rofstid
 | 
						|
where rf.rodbid <> dru.rodbid
 | 
						|
group by vn.versionid, ParentName,FolderName, aa.rofstid, rf.rodbid, dru.rodbid
 | 
						|
GO*/
 |