use veproms_BYR2 GO IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ConvertEnhanced]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) DROP PROCEDURE [ConvertEnhanced]; GO CREATE PROCEDURE [dbo].[ConvertEnhanced] ( @svid int, @bvid int, @Type varchar(1), @Source varchar(3), @Proc varchar(3) ) WITH EXECUTE AS OWNER AS BEGIN TRY -- Try Block BEGIN TRANSACTION -- update cc set cc.config = ah.newConfig from ( select replace( case @Source when 'Yes' then t1.config else t2.config end ,'>' ,'>') newConfig ,t1.ContentID sourceID,t2.ContentID enhancedID from ( select vi.VersionID,vi.ItemID,cc.ContentID,cc.Config,cc.Type,cc.Text,xHistory.value('@ProcName','nvarchar(8)') ProcName,xHistory.value('@RecID','nvarchar(8)') RecID from vefn_GetVersionItems(@svid) vi join (select ContentID,Type,Text,Config,CAST(Config as xml) xConfig from Contents where (@Proc = 'Yes' and type = 0) or (@Proc != 'Yes' and Type >= 10000)) cc on vi.ContentID = cc.ContentID cross apply xConfig.nodes('//History') tHistory(xHistory) ) t1 join ( select vi.VersionID,vi.ItemID,cc.ContentID,cc.Config,cc.Type,cc.Text,xHistory.value('@ProcName','nvarchar(8)') ProcName,xHistory.value('@RecID','nvarchar(8)') RecID from vefn_GetVersionItems(@bvid) vi join (select ContentID,Type,Text,Config,CAST(Config as xml) xConfig from Contents where (@Proc = 'Yes' and type = 0) or (@Proc != 'Yes' and Type >= 10000)) cc on vi.ContentID = cc.ContentID cross apply xConfig.nodes('//History') tHistory(xHistory) ) t2 on t1.ProcName = t2.ProcName and (@Proc = 'Yes' or (@Proc != 'Yes' and (SUBSTRING(t1.RecID,3,6) = SUBSTRING(t2.RecID,3,6) and LEFT(t2.RecID,2) = '0L'))) ) ah join Contents cc on case @Source when 'Yes' then ah.sourceID else ah.enhancedID end = cc.ContentID -- IF( @@TRANCOUNT > 0 ) COMMIT END TRY BEGIN CATCH -- Catch Block IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback EXEC vlnErrorHandler END CATCH GO exec vesp_TurnChangeManagerOFF go declare @svid int declare @bvid int --set variable for source select @svid = VersionID from vefn_GetVersionNames() where FolderName = 'Rev. 2 EOP Master Procedures' --set variable for background select @Bvid = VersionID from vefn_GetVersionNames() where FolderName = 'Rev. 2 EOP Backgrounds' --update docversion for Background print 'BGDV-1' update docversions set config = replace(config,'>', '>') where VersionID =@svid print 'BGDV-2' update docversions set config = replace(config,'>', '>') where VersionID =@bvid print 'BG-1' Exec ConvertEnhanced @svid,@bvid,'1','Yes','Yes' print 'BG-2' Exec ConvertEnhanced @svid,@bvid,'0','No','Yes' print 'BG-3' Exec ConvertEnhanced @svid,@bvid,'1','Yes','No' print 'BG-4' Exec ConvertEnhanced @svid,@bvid,'0','No','No' select @Bvid = VersionID from vefn_GetVersionNames() where FolderName = 'Rev. 2 EOP Deviations' --update docversion for Deviations print 'DDDV-1' update docversions set config = replace(config,'>', '>') where VersionID =@svid print 'DDDV-2' update docversions set config = replace(config,'>', '>') where VersionID =@bvid print 'DD-1' Exec ConvertEnhanced @svid,@bvid,'2','Yes','Yes' print 'DD-2' Exec ConvertEnhanced @svid,@bvid,'0','No','Yes' print 'DD-3' Exec ConvertEnhanced @svid,@bvid,'2','Yes','No' print 'DD-4' Exec ConvertEnhanced @svid,@bvid,'0','No','No' GO exec vesp_TurnChangeManagerON go Use Master go