This commit is contained in:
205
PROMS/SQL Data Tools/ROCleanUp.sql
Normal file
205
PROMS/SQL Data Tools/ROCleanUp.sql
Normal file
@@ -0,0 +1,205 @@
|
||||
SET NOCOUNT ON
|
||||
Select RODBID, ROName, FolderPath
|
||||
, (Select Count(*) from ROUSAGES UU where UU.RODBID = DB.RODBID) Usages
|
||||
, (Select Count(*) from DROUSAGES UU where UU.RODBID = DB.RODBID) DocUsages
|
||||
, (Select Count(*) from ROFSTs FS where FS.RODBID = DB.RODBID) ROFSTs
|
||||
, (select Count(*) from Associations AA
|
||||
Join ROFSTs RF On RF.ROFstID=AA.ROFstID where RF.RODBID = DB.RODBID) Associations
|
||||
, (select Count(*) from Figures FF
|
||||
Join ROFSTs RF On RF.ROFstID=FF.ROFstID where RF.RODBID = DB.RODBID) Figures
|
||||
from RODBS DB
|
||||
GO
|
||||
EXECUTE [vesp_TurnChangeManagerOFF]
|
||||
GO
|
||||
PRINT ' 1 Purge Multiple Associations'
|
||||
begin
|
||||
with cte as (
|
||||
Select *, Row_Number() over (partition by VersionID order by associationID ) MyRank from Associations
|
||||
)
|
||||
delete CTE where MyRank > 1
|
||||
end
|
||||
|
||||
DECLARE @FstRanks as TABLE
|
||||
(
|
||||
ROFSTID int primary key,
|
||||
UniqueRow int,
|
||||
Duplicate int
|
||||
)
|
||||
PRINT ' 2 Find Duplicate ROFSTs'
|
||||
Insert into @FstRanks
|
||||
Select ROFSTID
|
||||
, DENSE_RANK() Over (order by ROLOOKUP) UniqueRow
|
||||
, ROW_NUMBER() Over (partition by ROLOOKUP order by ROLOOKUP) Duplicate
|
||||
From ROFSTs
|
||||
|
||||
DECLARE @Trans as TABLE
|
||||
(
|
||||
ROFSTID int,
|
||||
VersionID int
|
||||
)
|
||||
|
||||
PRINT ' 3 Create a Translation Table'
|
||||
|
||||
Insert Into @Trans
|
||||
Select (Select Min(ROFSTID) From @FstRanks where UniqueRow = RNK.UniqueRow) ROFSTID,
|
||||
AA.VersionID
|
||||
from ROFSTs RF
|
||||
Join @FstRanks RNK ON RF.ROFSTID = RNK.ROFSTID
|
||||
Join Associations AA on AA.RofstID = RF.ROFstID
|
||||
|
||||
PRINT ' 4 Translate RO Associations'
|
||||
|
||||
Update AA set ROFSTID = TT.ROFSTID
|
||||
From Associations AA
|
||||
Join @Trans TT ON AA.VersionID = TT.VersionID
|
||||
|
||||
|
||||
PRINT ' 5 Contents - replacing rodbid''s in content records'' link text'
|
||||
|
||||
update cc set text = replace(text, ' ' + cast(ru.rodbid as varchar(2)) + '[END>', ' 1[END>')
|
||||
from Contents CC
|
||||
Join ROUsages RU ON CC.ContentID = RU.ContentID
|
||||
where RU.rodbid !=1
|
||||
|
||||
PRINT ' 6 Grids - replacing rodbid''s in grid records'' link text'
|
||||
|
||||
update GG set data = cast(replace(cast(data as nvarchar(max)), ' ' + cast(ru.rodbid as varchar(2)) + '[END>', ' 1[END>') as xml)
|
||||
from Grids GG
|
||||
Join ROUsages RU ON GG.ContentID = RU.ContentID
|
||||
where RU.rodbid !=1
|
||||
|
||||
PRINT ' 7 Update ROUsages to use the same RODBID'
|
||||
update tblROUsages set rodbid = 1
|
||||
where rodbid != 1
|
||||
|
||||
PRINT ' 8 Update DROUsages to use the same RODBID'
|
||||
update DROUsages set rodbid = 1
|
||||
where rodbid != 1
|
||||
|
||||
DECLARE @TransImageID table
|
||||
(
|
||||
ImageID int primary key,
|
||||
TransImageID int
|
||||
)
|
||||
begin
|
||||
with cte as (
|
||||
select dense_rank() over (order by content) MyRank
|
||||
,row_number() over (partition by content order by RODBID ) Duplicate,*
|
||||
from roimages)
|
||||
Insert Into @TransImageID
|
||||
select CT1.ImageID , CT2.ImageID TransID from CTE CT1
|
||||
Join (select ImageID, MyRank From CTE where Duplicate = 1) CT2 ON CT1.MyRank = CT2.MyRank
|
||||
--Where CT1.ImageID != CT2.ImageID
|
||||
end
|
||||
--Select * from @TransImageID order by TransImageID
|
||||
|
||||
--Remove Duplicate Figures
|
||||
delete from Figures where FigureID IN(
|
||||
select FigureID from (
|
||||
Select dense_rank() over (order by ROFstID, TransImageID) MyRank
|
||||
,row_number() over (partition by ROFstID, TransImageID order by ROFstID, TransImageID ) Duplicate,FF.*, TT.TransImageID From FIgures FF
|
||||
Join @TransImageID TT ON FF.ImageID = TT.ImageID
|
||||
) T1 where Duplicate > 1)
|
||||
|
||||
--
|
||||
|
||||
/*--select * from (
|
||||
Select dense_rank() over (order by ROFstID, TransImageID) MyRank
|
||||
,row_number() over (partition by ROFstID, TransImageID order by ROFstID, TransImageID ) Duplicate,FF.*, TT.TransImageID From FIgures FF
|
||||
Join @TransImageID TT ON FF.ImageID = TT.ImageID
|
||||
--) T1 where Duplicate > 1
|
||||
*/
|
||||
|
||||
PRINT ' 9 Translate RO ImageIDs'
|
||||
|
||||
Update FF Set FF.ImageID = TT.TransImageID
|
||||
From FIgures FF
|
||||
Join @TransImageID TT ON FF.ImageID = TT.ImageID
|
||||
|
||||
PRINT '10 Remove duplicate ROImages'
|
||||
|
||||
Delete from ROImages where ImageID in (Select ImageID from @TransImageID where ImageID != TransImageID)
|
||||
|
||||
PRINT '11 Point ROImages at RODBID = 1'
|
||||
Update RoImages Set RODBID = 1 where RODBID != 1
|
||||
|
||||
PRINT '12 Add Missing Figures'
|
||||
|
||||
DECLARE @LastROFstID int
|
||||
select @LastROFstID=max(ROFstID) from ROFSTs
|
||||
DECLARE @LastFigureCount int
|
||||
select @LastFigureCount=count(*) from Figures where ROFstid = @LastROFstID
|
||||
DECLARE @LastRODBID int
|
||||
select @LastRODBID= RODBID from ROFSTs where ROFstID = @LastROFstID
|
||||
DECLARE @tbl TABLE
|
||||
(
|
||||
ROFSTID int,
|
||||
HowMany int
|
||||
)
|
||||
insert into @tbl
|
||||
select RF.ROFSTID, Count(FF.ROFSTID) HowMany from ROFSTs RF
|
||||
Join Figures FF ON FF.ROFstID=RF.ROFSTID
|
||||
Where RODBID = @LastRODBID group by RF.ROFSTID
|
||||
DECLARE @MaxFigures int
|
||||
select @MaxFigures=max(HowMany) from @Tbl
|
||||
DECLARE @RecentGoodROFSTID int
|
||||
select @RecentGoodROFSTID = Max(ROFSTID) from @tbl where HowMany = @MaxFigures
|
||||
--select * from @tbl
|
||||
--Print '
|
||||
--Latest ROFSTID ' + cast(@LastROFstID as varchar(25)) + '
|
||||
--Latest Figure Count ' + cast(@LastFigureCount as varchar(25)) + '
|
||||
--Maximum Figure Count ' + cast(@MaxFigures as varchar(25)) + '
|
||||
--Latest Good ROFSTID ' + cast(@RecentGoodROFstID as varchar(25)) + '
|
||||
--'
|
||||
|
||||
INSERT INTO [dbo].[Figures]
|
||||
([ROFstID],[ImageID],[Config],[DTS],[UserID])
|
||||
select AA.ROFstID, FF.ImageID, FF.Config ,FF.DTS,FF.UserID from (select Distinct ROFSTID from Associations) AA
|
||||
Join (select ImageID,Config,DTS,UserID from Figures Where ROFstID = @RecentGoodROFSTID) FF ON AA.ROFstID=aa.ROFstID
|
||||
Left Join Figures F2 ON AA.ROFstID = f2.ROFstID and ff.ImageID = F2.ImageID
|
||||
Where F2.FigureID is null
|
||||
|
||||
|
||||
|
||||
--begin
|
||||
--with CTE as (
|
||||
--select AA.ROFstID, FF.ImageID, FF.Config ,FF.DTS,FF.UserID from (select Distinct ROFSTID from Associations) AA
|
||||
--Join (select ImageID,Config,DTS,UserID from Figures Where ROFstID = @RecentGoodROFSTID) FF ON AA.ROFstID=aa.ROFstID
|
||||
--Left Join Figures F2 ON AA.ROFstID = f2.ROFstID and ff.ImageID = F2.ImageID
|
||||
--Where F2.FigureID is null
|
||||
--)
|
||||
--select ROFSTID, Count(*) NewFigures , (select Count(*) from Figures FF where CTE.ROFSTID = FF.ROFSTID) OldFigures from CTE Group By ROFSTID
|
||||
--end
|
||||
|
||||
|
||||
PRINT '13 Remove unused Figures'
|
||||
|
||||
Delete From Figures where ROFstID not in(Select ROFSTID from Associations)
|
||||
|
||||
PRINT '14 remove unused ROFSTs'
|
||||
|
||||
Delete From ROFSTS where ROFstID not in(Select ROFSTID from Associations)
|
||||
|
||||
PRINT '15 Point ROFSTs at RODBID=1'
|
||||
|
||||
Update ROFSTs Set RODBID = 1
|
||||
Where RODBID != 1
|
||||
|
||||
PRINT '16 Remove unused RODBs'
|
||||
|
||||
Delete RODBs Where RODBID != 1
|
||||
|
||||
PRINT '17 Rename RODB'
|
||||
Update RODBs Set ROName='RO'
|
||||
GO
|
||||
EXECUTE [vesp_TurnChangeManagerON]
|
||||
GO
|
||||
Select RODBID, ROName, FolderPath
|
||||
, (Select Count(*) from ROUSAGES UU where UU.RODBID = DB.RODBID) Usages
|
||||
, (Select Count(*) from DROUSAGES UU where UU.RODBID = DB.RODBID) DocUsages
|
||||
, (Select Count(*) from ROFSTs FS where FS.RODBID = DB.RODBID) ROFSTs
|
||||
, (select Count(*) from Associations AA
|
||||
Join ROFSTs RF On RF.ROFstID=AA.ROFstID where RF.RODBID = DB.RODBID) Associations
|
||||
, (select Count(*) from Figures FF
|
||||
Join ROFSTs RF On RF.ROFstID=FF.ROFstID where RF.RODBID = DB.RODBID) Figures
|
||||
from RODBS DB
|
Reference in New Issue
Block a user