This is the Sql script I use. This deletes and recreates the Url Master pages. Please backup your database before running the script. The script is setup to run through the host->sql menu. If you'd like to run it directly in a query manager, you'll need to find/replace the {objectQualifier} and {databaseOwner} values.
Note that there are some commented out statements regarding the DNN 360 Menu - if you have this module on your install you'll need to uncomment these to run it. The DNN 360 Menu creates some triggers in the database which are incompatible with any statements that affect more than one record at a time. This is one possible reason for the failure of Url Master pages.
Script:
/*disable trigger DNN360Menu_delete on {objectQualifier}Tabs
go
disable trigger DNN360Menu_insert on {objectQualifier}Tabs
go
disable trigger DNN360Menu_update on {objectQualifier}Tabs
go*/
begin transaction
declare @moduleDefId int, @moduleControlId int, @portalId int
/* remove any records for deleted portals */
delete from {databaseOwner}ifty_TabModuleCreation
where not exists (select * from {databaseOwner}{objectQualifier}Portals p where p.portalId = {databaseOwner}ifty_TabModuleCreation.PortalId)
and PortalId is not null
/* delete existing pages */
delete from {databaseOwner}{objectQualifier}Tabs where tabName in ('Page Urls', 'Friendly Url Settings')
/* delete any existing modules */
delete from {databaseOwner}{objectQualifier}Modules where ModuleTitle in ('Page Urls', 'Friendly Url Settings')
/*update tabmodulecreation table to 'not complete'*/
update {databaseOwner}ifty_TabModuleCreation
set completed = 0
/* update with correct module definitions */
update {databaseOwner}ifty_TabMOduleCreation
set MOduleDefId = (select moduleDefId from {databaseOwner}{objectQualifier}ModuleDefinitions where FriendlyName = 'Url Options')
where tabName = 'Friendly Url Settings'
update {databaseOwner}ifty_TabModuleCreation
set ModuleDefId = (select moduleDefId from {databaseOwner}{objectQualifier}ModuleDefinitions where FriendlyName = 'Page List')
where tabName = 'Page Urls'
declare recreate_Curs cursor for
select tmc.ModuleDefId, ModuleControlId, PortalId
From {databaseOwner}[ifty_TabModuleCreation] tmc
inner join {databaseOwner}{objectQualifier}ModuleControls mc
on mc.ModuleDefID = tmc.ModuleDefId
where completed = 0
open recreate_Curs
fetch from recreate_Curs
into @moduleDefId
, @moduleControlId
, @portalId
while @@fetch_Status = 0
BEGIN
--select @portalId, @moduleDefId, @moduleControlId
exec {databaseOwner}ifty_AddTabAndTabModule @moduleDefId, @moduleControlId
fetch from recreate_Curs
into @moduleDefId
, @moduleControlId
, @portalId
END
close recreate_Curs
deallocate recreate_Curs
select dm.FriendlyName, md.FriendlyName, mc.ControlKey, mc.ControlTitle, mc.ControlSrc,m.ModuleId, m.ModuleTitle,t.TabId, t.TabName
from {databaseOwner}{objectQualifier}DesktopModules dm
inner join {databaseOwner}{objectQualifier}ModuleDefinitions md
on md.DesktopModuleId = dm.DesktopModuleId
inner join {databaseOwner}{objectQualifier}ModuleControls mc
on mc.ModuleDefId = md.ModuleDefId
inner join {databaseOwner}{objectQualifier}Modules m
on m.ModuleDefId = md.MOduleDefId
inner join {databaseOwner}{objectQualifier}TabModules tm
on tm.MOduleId = m.ModuleId
inner join {databaseOwner}{objectQualifier}Tabs t
on t.TabId = tm.TabId
where dm.FriendlyName = 'iFinity Url Master'
order by 1,2,3
rollback transaction
/*go
enable trigger DNN360Menu_delete on {objectQualifier}Tabs
go
enable trigger DNN360Menu_insert on {objectQualifier}Tabs
go
enable trigger DNN360Menu_update on {objectQualifier}Tabs
go*/