if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_UserGetMultiPortal') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_UserGetMultiPortal GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_UserAdd') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_UserAdd GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PM_ThreadGet') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PM_ThreadGet GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PM_ThreadDelete') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PM_ThreadDelete GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PM_Get') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PM_Get GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PM_GetAll') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PM_GetAll GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_AA_PM_ThreadAdd') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_AA_PM_ThreadAdd GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PM_Add') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PM_Add GO /* DROP FOR GOOD */ if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_UserDelete') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_UserDelete GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PMGetAll') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PMGetAll GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PMThreadDelete') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PMThreadDelete GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PMThreadGet') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PMThreadGet GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PMThreadGetAll') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PMThreadGetAll GO --Making sure that EmailQueue Task is not already registered in the scheduler. DELETE FROM {databaseOwner}{objectQualifier}Schedule WHERE TypeFullName = 'DotNetNuke.Modules.Forum.StartEmailQueuedTasks, DotNetNuke.Modules.Forum' GO INSERT INTO {databaseOwner}{objectQualifier}Schedule ( TypeFullName, [TimeLapse], [TimeLapseMeasurement], [RetryTimeLapse], [RetryTimeLapseMeasurement], [RetainHistoryNum], [AttachToEvent], [CatchUpEnabled], [Enabled], [ObjectDependencies], [Servers]) VALUES ( 'DotNetNuke.Modules.Forum.StartEmailQueuedTasks, DotNetNuke.Modules.Forum', 1, 'm', 1, 'm', -1, '', 0, 0, '', null ) GO --Making sure that EmailQueue Task Cleanup is not already registered in the scheduler. DELETE FROM {databaseOwner}{objectQualifier}Schedule WHERE TypeFullName = 'DotNetNuke.Modules.Forum.CleanupEmailQueuedTasks, DotNetNuke.Modules.Forum' GO INSERT INTO {databaseOwner}{objectQualifier}Schedule ( TypeFullName, [TimeLapse], [TimeLapseMeasurement], [RetryTimeLapse], [RetryTimeLapseMeasurement], [RetainHistoryNum], [AttachToEvent], [CatchUpEnabled], [Enabled], [ObjectDependencies], [Servers]) VALUES ( 'DotNetNuke.Modules.Forum.CleanupEmailQueuedTasks, DotNetNuke.Modules.Forum', 1, 'd', 1, 'd', -1, '', 0, 0, '', null ) GO ALTER TABLE {databaseOwner}[{objectQualifier}Forum_Users] WITH NOCHECK ADD [TrackingDuration] [int] DEFAULT (1000) NOT NULL GO /* PM Renames */ EXEC sp_rename @objname = '{databaseOwner}{objectQualifier}Forum_PM_Threads.PMStartUserID', @newname = 'PMStartThreadUserID', @objtype = 'COLUMN' GO EXEC sp_rename @objname = '{databaseOwner}{objectQualifier}Forum_PM_Threads.PMToUserID', @newname = 'PMReceiveThreadUserID', @objtype = 'COLUMN' GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_UserGetMultiPortal] ( @UserID INT ) AS SELECT [UserID], [Signature], [Occupation], [Interests], [MSN], [Yahoo], [AIM], [ICQ], [Skin], [UserAvatar], [Avatar], [AdditionalAvatars], [PostCount], [LastActivity], [FlatView], ISNULL(( SELECT NULLIF(COUNT(DISTINCT [UserID]), 0) FROM {objectQualifier}Forum_Moderators WHERE [UserID] = [UserID] ), [IsTrusted]) AS IsTrusted, [EnableDisplayInMemberList], [EnableOnlineStatus], [ThreadsPerPage], [PostsPerPage], [ViewDescending], [EnableModNotification], [EnablePM], [EnablePMNotifications], [EmailFormat], [PortalID], [EnablePublicEmail], [TrackingDuration] FROM {objectQualifier}Forum_Users WHERE [UserId] = @UserID GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_UserAdd] ( @UserId INT, @UserAvatar BIT, @Avatar NVARCHAR(255), @AdditionalAvatars NVARCHAR(255), @Signature NVARCHAR(1024), @Occupation NVARCHAR(255), @Interests NVARCHAR(255), @MSN NVARCHAR(128), @Yahoo NVARCHAR(128), @AIM NVARCHAR(128), @ICQ NVARCHAR(128), @Skin NVARCHAR(255), @IsTrusted BIT, @EnableDisplayInMemberList BIT, @EnableOnlineStatus BIT, @ThreadsPerPage INT, @PostsPerPage INT, @CollapseGroups NVARCHAR(255), @EnablePublicEmail BIT, @EnablePM BIT, @EnablePMNotifications BIT, @PortalID INT ) AS IF NOT EXISTS ( SELECT [UserID] FROM {objectQualifier}Forum_Users WHERE [UserID] = @UserID AND PortalID = @PortalID ) BEGIN INSERT INTO {objectQualifier}Forum_Users ( [UserID], [UserAvatar], [Avatar], [AdditionalAvatars], [Signature], [Occupation], [Interests], [MSN], [Yahoo], [AIM], [ICQ], [Skin], [IsTrusted], [EnableDisplayInMemberList], [EnableOnlineStatus], [ThreadsPerPage], [PostsPerPage], [CollapseGroups], [EnablePM], [EnablePMNotifications], [EmailFormat], [PortalID], [EnablePublicEmail] ) VALUES ( @UserID, @UserAvatar, @Avatar, @AdditionalAvatars, @Signature, @Occupation, @Interests, @MSN, @Yahoo, @AIM, @ICQ, @Skin, @IsTrusted, @EnableDisplayInMemberList, @EnableOnlineStatus, @ThreadsPerPage, @PostsPerPage, @CollapseGroups, @EnablePM, @EnablePMNotifications, 1, @PortalID, @EnablePublicEmail ) END GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PM_ThreadGet] ( @PMThreadID INT ) AS SELECT P.PMThreadID, P.Subject, P.Body, T.PMReceiveThreadUserID, P.PMToUserID, P.PMFromUserID, T.Views, T.LastPostedPMID, T.Replies, CreatedDate AS LastPMDate, T.PMStartThreadUserID, T.PMStartUserDeleted, T.PMToUserDeleted, T.PortalID FROM {databaseOwner}{objectQualifier}Forum_PM_Posts P INNER JOIN {databaseOwner}{objectQualifier}Forum_PM_Threads T ON P.PMThreadID = T.PMThreadID WHERE P.PMThreadID = @PMThreadID GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PM_Get] @PMID INT AS SELECT P.PMID, P.ParentPMID, P.RemoteAddr, P.Subject, P.Body, P.CreatedDate, P.PMThreadID, P.PMLevel, P.FlatSortOrder, P.PMFromUserID, P.PMToUserID FROM {databaseOwner}{objectQualifier}Forum_PM_Posts P INNER JOIN {databaseOwner}{objectQualifier}Forum_PM_Threads PT ON P.PMThreadID = PT.PMThreadID WHERE PMID = @PMID AND PT.[PMThreadID] = P.PMThreadID GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PM_GetAll] ( @PMThreadID INT, @PageIndex INT, @PageSize INT, @Descending BIT ) AS DECLARE @PageLowerBound INT DECLARE @PageUpperBound INT -- Set the page bounds SET @PageLowerBound = @PageSize * @PageIndex SET @PageUpperBound = @PageLowerBound + @PageSize + 1 CREATE TABLE #PageIndex ( IndexID INT IDENTITY(1, 1) NOT NULL, PMID INT ) IF @Descending = 1 BEGIN INSERT INTO #PageIndex ( PMID ) SELECT PMID FROM {objectQualifier}Forum_PM_Posts P WHERE P.[PMThreadID] = @PMThreadID ORDER BY P.[FlatSortOrder] DESC SELECT P.PMID, P.ParentPMID, P.RemoteAddr, P.Subject, P.Body, P.CreatedDate, P.PMThreadID, P.PMLevel, P.FlatSortOrder, P.PMFromUserID, P.PMToUserID, P.PMFromUserID, P.PMToUserID FROM {databaseOwner}{objectQualifier}Forum_PM_Posts P INNER JOIN #PageIndex I ON P.PMID = I.PMID WHERE I.IndexID > @PageLowerBound AND I.IndexID < @PageUpperBound ORDER BY I.IndexID SELECT COUNT(*) AS TotalRecords FROM #PageIndex END ELSE BEGIN INSERT INTO #PageIndex ( PMID ) SELECT PMID FROM {databaseOwner}{objectQualifier}Forum_PM_Posts P WHERE P.[PMThreadID] = @PMThreadID ORDER BY P.[FlatSortOrder] ASC SELECT P.PMID, P.ParentPMID, P.RemoteAddr, P.Subject, P.Body, P.CreatedDate, P.PMThreadID, P.PMLevel, P.FlatSortOrder, P.PMFromUserID, P.PMToUserID, P.PMFromUserID, P.PMToUserID FROM {databaseOwner}{objectQualifier}Forum_PM_Posts P INNER JOIN #PageIndex I ON P.PMID = I.PMID WHERE I.IndexID > @PageLowerBound AND I.IndexID < @PageUpperBound ORDER BY I.IndexID SELECT COUNT(*) AS TotalRecords FROM #PageIndex END GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PM_ThreadDelete] ( @PMThreadID INT, @UserId INT ) AS DECLARE @PMStartThreadUserID INT, @PMReceiveThreadUserID INT DECLARE @PMStartUserDeleted BIT, @PMToUserDeleted BIT SELECT @PMStartThreadUserID = PMStartThreadUserID, @PMReceiveThreadUserID = PMReceiveThreadUserID, @PMStartUserDeleted = PMStartUserDeleted, @PMToUserDeleted = PMToUserDeleted FROM {objectQualifier}Forum_PM_Threads WHERE PMThreadID = @PMThreadID IF @PMStartThreadUserID = @UserId SET @PMStartUserDeleted = 1 IF @PMReceiveThreadUserID = @UserId SET @PMToUserDeleted = 1 --Thread is deleted from both start user and to user so delete thread from db. IF @PMToUserDeleted = 1 AND @PMStartUserDeleted = 1 BEGIN DELETE FROM {databaseOwner}{objectQualifier}Forum_PM_Threads WHERE PMThreadID = @PMThreadID DELETE FROM {databaseOwner}{objectQualifier}Forum_PM_Posts WHERE PMThreadID = @PMThreadID END ELSE BEGIN UPDATE {databaseOwner}{objectQualifier}Forum_PM_Threads SET PMStartUserDeleted = @PMStartUserDeleted, PMToUserDeleted = @PMToUserDeleted WHERE PMThreadID = @PMThreadID END GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_AA_PM_ThreadAdd] @PMID INT, @PMStartThreadUserID INT, @PMReceiveThreadUserID INT, @Subject NVARCHAR(100), @PortalID INT, @PMThreadId INT OUTPUT AS INSERT INTO {databaseOwner}{objectQualifier}Forum_PM_Threads ( PortalID, PMStartUserDeleted, PMToUserDeleted, Replies, LastPostedPMID, Views, PMStartThreadUserID, PMReceiveThreadUserID, PMStartDate, PMThreadSubject ) VALUES ( @PortalID, 0, 0, 0, @PMID, 0, @PMStartThreadUserID, @PMReceiveThreadUserID, GETDATE(), @Subject ) SET @PMThreadID = @@IDENTITY GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PM_Add] ( @ParentPMID INT, @PMFromUserID INT, @RemoteAddr NVARCHAR(100), @Subject NVARCHAR(250), @Body NTEXT, @PMToUserID INT, @PortalID INT ) AS DECLARE @@PMID INT DECLARE @@MaxFlatSortOrder INT DECLARE @@ParentLevel INT DECLARE @@PMThreadID INT DECLARE @@CreatedDate DATETIME IF @ParentPMID = 0 -- New PM, no pervious thread BEGIN -- Do INSERT into PM table INSERT {databaseOwner}{objectQualifier}Forum_PM_Posts ( ParentPMID, RemoteAddr, Subject, Body, PMLevel, FlatSortOrder, CreatedDate, PMFromUserID, PMToUserID ) VALUES ( @ParentPMID, @RemoteAddr, @Subject, @Body, 0, 0, GETDATE(), @PMFromUserID, @PMToUserID ) -- Get the new Post ID SELECT @@PMID = @@IDENTITY EXEC {databaseOwner}[{objectQualifier}Forum_AA_PM_ThreadAdd] @@PMID, @PMFromUserID, @PMToUserID, @Subject, @PortalID, @@PMThreadID OUTPUT -- Update Posts with the new post id UPDATE {databaseOwner}{objectQualifier}Forum_PM_Posts SET PMThreadID = @@PMThreadID WHERE PMID = @@PMID END ELSE -- @ParentPostID <> 0 it's a reply to an existing PM BEGIN -- Get post information for what we are replying to SELECT @@ParentLevel = PMLevel, @@PMThreadID = PMThreadID FROM {objectQualifier}Forum_PM_Posts WHERE PMID = @ParentPMID -- Calculate maximum flat sort order SELECT @@MaxFlatSortOrder = MAX(FlatSortOrder) FROM {databaseOwner}{objectQualifier}Forum_PM_Posts WHERE PMThreadID = @@PMThreadID -- Is there another post at the same level or higher IF EXISTS ( SELECT * FROM {databaseOwner}{objectQualifier}Forum_PM_Posts WHERE PMLevel <= @@ParentLevel AND PMThreadID = @@PMThreadID ) BEGIN -- Find the next post at the same level or higher INSERT {databaseOwner}{objectQualifier}Forum_PM_Posts ( ParentPMID, RemoteAddr, Subject, Body, PMThreadID, PMLevel, FlatSortOrder, CreatedDate, PMFromUserID, PMToUserID ) VALUES ( @ParentPMID, @RemoteAddr, @Subject, @Body, @@PMThreadID, @@ParentLevel + 1, @@MaxFlatSortOrder + 1, GETDATE(), @PMFromUserID, @PMToUserID ) -- Get the new post ID SELECT @@PMID = @@IDENTITY END -- update thread EXEC {databaseOwner}[{objectQualifier}Forum_AA_PM_ThreadUpdate] @@PMThreadID, @@PMID END SELECT @@PMID GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_UserUpdateTrackingDuration') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_UserUpdateTrackingDuration GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_UserGet') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_UserGet GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_ModeratorGetByForum') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_ModeratorGetByForum GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_ModeratePostGet') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_ModeratePostGet GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PM_ThreadGetAll') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PM_ThreadGetAll GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_UserUpdate') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_UserUpdate GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PostGetAll') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PostGetAll GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_PostGet') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}{objectQualifier}Forum_PostGet GO if exists (SELECT * FROM dbo.SYSOBJECTS WHERE id = object_id(N'{databaseOwner}[{objectQualifier}Forum_PostGetAllForThread]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}[{objectQualifier}Forum_PostGetAllForThread] GO if exists (SELECT * FROM dbo.SYSOBJECTS WHERE id = object_id(N'{databaseOwner}[{objectQualifier}Forum_ForumsGetByModuleID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure {databaseOwner}[{objectQualifier}Forum_ForumsGetByModuleID] GO if exists (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}{objectQualifier}Forum_vw_ForumUsers') and OBJECTPROPERTY(id, N'IsView') = 1) DROP VIEW {databaseOwner}{objectQualifier}Forum_vw_ForumUsers GO ALTER TABLE {databaseOwner}[{objectQualifier}Forum_Users] WITH NOCHECK ADD [LockTrust] [bit] DEFAULT (0) NOT NULL GO ALTER TABLE {databaseOwner}[{objectQualifier}Forum_Users] WITH NOCHECK ADD [IsBanned] [bit] DEFAULT (0) NOT NULL GO ALTER TABLE {databaseOwner}[{objectQualifier}Forum_Users] WITH NOCHECK ADD [LiftBanDate] [datetime] NULL GO ALTER TABLE {databaseOwner}[{objectQualifier}Forum_Forums] WITH NOCHECK ADD [ForumLink] nvarchar(255) NULL GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_TrackedThreads_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_TrackedThreads DROP CONSTRAINT FK_{objectQualifier}Forum_TrackedThreads_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_ModerationAudit_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_ModerationAudit DROP CONSTRAINT FK_{objectQualifier}Forum_ModerationAudit_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_Moderators_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_Moderators DROP CONSTRAINT FK_{objectQualifier}Forum_Moderators_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_Posts_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_Posts DROP CONSTRAINT FK_{objectQualifier}Forum_Posts_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_ThreadRating_Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_ThreadRating DROP CONSTRAINT FK_{objectQualifier}Forum_ThreadRating_Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_ThreadsRead_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_ThreadsRead DROP CONSTRAINT FK_{objectQualifier}Forum_ThreadsRead_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_TrackedForums_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_TrackedForums DROP CONSTRAINT FK_{objectQualifier}Forum_TrackedForums_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_UserForums_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_UserForums DROP CONSTRAINT FK_{objectQualifier}Forum_UserForums_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'FK_{objectQualifier}Forum_UserThreads_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_UserThreads DROP CONSTRAINT FK_{objectQualifier}Forum_UserThreads_{objectQualifier}Forum_Users GO if exists (select * from dbo.sysobjects where id = object_id(N'PK_{objectQualifier}Forum_Users') and OBJECTPROPERTY(id, N'IsConstraint') = 1) ALTER TABLE {databaseOwner}{objectQualifier}Forum_Users DROP CONSTRAINT PK_{objectQualifier}Forum_Users GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_UserUpdateTrackingDuration] @TrackingDuration INT, @UserID INT, @PortalID INT AS BEGIN UPDATE {databaseOwner}{objectQualifier}Forum_Users SET TrackingDuration = @TrackingDuration WHERE UserID = @UserID AND PortalID = @PortalID END GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_UserGet] ( @UserID INT, @PortalID INT ) AS SELECT [UserID], [Signature], [Occupation], [Interests], [MSN], [Yahoo], [AIM], [ICQ], [Skin], [UserAvatar], [Avatar], [AdditionalAvatars], [PostCount], [LastActivity], [FlatView], [IsTrusted], [EnableDisplayInMemberList], [EnableOnlineStatus], [ThreadsPerPage], [PostsPerPage], [ViewDescending], [EnableModNotification], [EnablePM], [EnablePMNotifications], [EmailFormat], [PortalID], [EnablePublicEmail], [TrackingDuration], [LockTrust], [IsBanned], [LiftBanDate] FROM {databaseOwner}{objectQualifier}Forum_Users WHERE [UserId] = @UserID AND [PortalID] = @PortalID GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_ModeratorGetByForum] ( @ForumID INT ) AS SELECT UserID, ForumID, AssignedDate, PostsModerated FROM {databaseOwner}{objectQualifier}Forum_Moderators WHERE ForumID = @ForumID GO CREATE VIEW {databaseOwner}[{objectQualifier}Forum_vw_ForumUsers] AS SELECT U.Username, U.FirstName, U.LastName, U.DisplayName, U.Email, U.UserID, FU.PortalID, FU.EnablePM, FU.EnableOnlineStatus, FU.EnableDisplayInMemberList, FU.PostCount, UP.CreatedDate FROM {databaseOwner}{objectQualifier}Users U INNER JOIN {databaseOwner}{objectQualifier}Forum_Users FU ON U.UserID = FU.UserID INNER JOIN {databaseOwner}{objectQualifier}UserPortals UP ON U.UserID = UP.UserId AND FU.PortalID = UP.PortalId WHERE (FU.EnableDisplayInMemberList = 1) GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_ModeratePostGet] ( @ForumID INT ) AS SELECT P.[ParentPostID], P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[Attachments] FROM {databaseOwner}{objectQualifier}Forum_Posts P INNER JOIN {databaseOwner}{objectQualifier}Forum_Threads T ON P.ThreadID = T.ThreadID WHERE P.IsApproved = 0 AND T.ForumID = @ForumID ORDER BY P.CreatedDate ASC GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PM_ThreadGetAll] ( @UserID INT, @PageSize INT, @PageIndex INT, @PortalId INT ) AS DECLARE @PageLowerBound INT DECLARE @PageUpperBound INT -- Set the page bounds SET @PageLowerBound = @PageSize * @PageIndex SET @PageUpperBound = @PageLowerBound + @PageSize + 1 CREATE TABLE #PageIndex ( IndexID INT IDENTITY(1, 1) NOT NULL, PMThreadID INT ) INSERT INTO #PageIndex ( PMThreadID ) SELECT PMThreadID FROM {databaseOwner}{objectQualifier}Forum_PM_Threads WHERE ( PMStartThreadUserID = @UserId OR PMReceiveThreadUserID = @UserId ) AND PortalId = @PortalId AND ( ( PMStartThreadUserID = @UserId AND PMStartUserDeleted = 0 ) OR ( PMReceiveThreadUserID = @UserId AND PMToUserDeleted = 0 ) ) ORDER BY LastPostedPMID DESC SELECT T.PMThreadID, T.PMThreadSubject, P.PMFromUserID, P.PMToUserID, P.Body, T.PMStartDate, T.PMStartThreadUserID, T.PMReceiveThreadUserID, T.Views, T.LastPostedPMID, T.Replies, P.CreatedDate AS LastPMDate FROM {databaseOwner}{objectQualifier}Forum_PM_Threads T INNER JOIN {databaseOwner}{objectQualifier}Forum_PM_Posts P ON T.LastPostedPMID = P.PMID INNER JOIN #PageIndex I ON T.PMThreadID = I.PMThreadID WHERE I.IndexID > @PageLowerBound AND I.IndexID < @PageUpperBound ORDER BY I.IndexID SELECT COUNT(*) AS TotalRecords FROM #PageIndex GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_UserUpdate] ( @UserId INT, @UserAvatar BIT, @Avatar NVARCHAR(255), @AdditionalAvatars NVARCHAR(255), @Signature NVARCHAR(1024), @Occupation NVARCHAR(255), @Interests NVARCHAR(255), @MSN NVARCHAR(128), @Yahoo NVARCHAR(128), @AIM NVARCHAR(128), @ICQ NVARCHAR(128), @Skin NVARCHAR(255), @IsTrusted BIT, @EnableDisplayInMemberList BIT, @EnableOnlineStatus BIT, @ThreadsPerPage INT, @PostsPerPage INT, @CollapseGroups NVARCHAR(255), @EnableModNotification BIT, @EnablePublicEmail BIT, @EnablePM BIT, @EnablePMNotifications BIT, @EmailFormat INT, @PortalID INT, @LockTrust BIT ) AS UPDATE {databaseOwner}{objectQualifier}Forum_Users SET [UserAvatar] = @UserAvatar, [Avatar] = @Avatar, [AdditionalAvatars] = @AdditionalAvatars, [Signature] = @Signature, [Occupation] = @Occupation, [Interests] = @Interests, [MSN] = @MSN, [Yahoo] = @Yahoo, [AIM] = @AIM, [ICQ] = @ICQ, [Skin] = @Skin, [IsTrusted] = @IsTrusted, [EnableDisplayInMemberList] = @EnableDisplayInMemberList, [EnableOnlineStatus] = @EnableOnlineStatus, [ThreadsPerPage] = @ThreadsPerPage, [PostsPerPage] = @PostsPerPage, [CollapseGroups] = @CollapseGroups, [EnableModNotification] = @EnableModNotification, [EnablePublicEmail] = @EnablePublicEmail, [EnablePM] = @EnablePM, [EnablePMNotifications] = @EnablePMNotifications, [EmailFormat] = @EmailFormat, [LockTrust] = @LockTrust WHERE [UserID] = @UserID AND [PortalID] = @PortalID GO CREATE PROCEDURE {databaseOwner}{objectQualifier}Forum_PostGetAll ( @ThreadID int, @ThreadPage int, @PostsPerPage int, @TreeView bit, @Descending bit, @PortalID int ) AS DECLARE @StartSortOrder int DECLARE @StopSortOrder int IF (@TreeView = 1) BEGIN IF @Descending = 1 BEGIN SET @StopSortOrder = (SELECT MAX(TreeSortOrder) From {databaseOwner}{objectQualifier}Forum_Posts Where ThreadID = @ThreadID) - (@ThreadPage * @PostsPerPage) SET @StartSortOrder = @StopSortOrder - @PostsPerPage + 1 SELECT P.[ParentPostID], -- Post fields P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[IsApproved], P.[IsLocked], P.[IsClosed], P.[Attachments], CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT Folder + FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentURL, CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentName, P.PostReported FROM {databaseOwner}{objectQualifier}Forum_Posts P WHERE [ThreadID] = @ThreadID AND P.[IsApproved] = 1 AND P.[TreeSortOrder] >= @StartSortOrder AND P.[TreeSortOrder] <= @StopSortOrder ORDER BY P.[TreeSortOrder] DESC END ELSE BEGIN SET @StartSortOrder = @ThreadPage * @PostsPerPage SET @StopSortOrder = @StartSortOrder + @PostsPerPage - 1 SELECT P.[ParentPostID], -- Post fields P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[IsApproved], P.[IsLocked], P.[IsClosed], P.[Attachments], CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT Folder + FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentURL, CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentName, P.PostReported FROM {databaseOwner}{objectQualifier}Forum_Posts P WHERE [ThreadID] = @ThreadID AND P.[IsApproved] = 1 AND P.[TreeSortOrder] >= @StartSortOrder AND P.[TreeSortOrder] <= @StopSortOrder ORDER BY P.[TreeSortOrder] END END ELSE BEGIN IF @Descending = 1 BEGIN SET @StopSortOrder = (SELECT MAX(FlatSortOrder) From {databaseOwner}{objectQualifier}Forum_Posts Where ThreadID = @ThreadID) - (@ThreadPage * @PostsPerPage) SET @StartSortOrder = @StopSortOrder - @PostsPerPage + 1 SELECT P.[ParentPostID], -- Post fields P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[IsApproved], P.[IsLocked], P.[IsClosed], P.[Attachments], CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT Folder + FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentURL, CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentName, P.PostReported FROM {databaseOwner}{objectQualifier}Forum_Posts P WHERE [ThreadID] = @ThreadID AND P.[IsApproved] = 1 AND P.[FlatSortOrder] >= @StartSortOrder AND P.[FlatSortOrder] <= @StopSortOrder ORDER BY P.[FlatSortOrder] DESC END ELSE BEGIN SET @StartSortOrder = @ThreadPage * @PostsPerPage SET @StopSortOrder = @StartSortOrder + @PostsPerPage - 1 SELECT P.[ParentPostID], -- Post fields P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[IsApproved], P.[IsLocked], P.[IsClosed], P.[Attachments], CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT Folder + FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentURL, CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentName, P.PostReported FROM {databaseOwner}{objectQualifier}Forum_Posts P WHERE [ThreadID] = @ThreadID AND P.[IsApproved] = 1 AND P.[FlatSortOrder] >= @StartSortOrder AND P.[FlatSortOrder] <= @StopSortOrder ORDER BY P.[FlatSortOrder] END END GO CREATE PROCEDURE {databaseOwner}{objectQualifier}Forum_PostGet ( @PostID int, @PortalID int ) AS SELECT P.[ParentPostID], -- Post fields P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[IsApproved], P.[IsLocked], P.[IsClosed], P.[Attachments], CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT Folder + FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentURL, CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentName, P.PostReported FROM {databaseOwner}{objectQualifier}Forum_Posts P WHERE P.[PostID] = @PostID GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_PostGetAllForThread] @ThreadID int, @PortalID int AS SELECT P.[ParentPostID], -- Post fields P.[UserID], P.[RemoteAddr], P.[Notify], P.[Subject], P.[Body], P.[CreatedDate], P.[ThreadID], P.[PostLevel], P.[TreeSortOrder], P.[FlatSortOrder], P.[PostID], P.[UpdatedDate], P.[UpdatedByUser], P.[IsApproved], P.[IsLocked], P.[IsClosed], P.[Attachments], CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT Folder + FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentURL, CASE WHEN LEFT(LOWER(FileAttachmentURL), 6) = 'fileid' THEN (SELECT FileName FROM {databaseOwner}{objectQualifier}Files WHERE 'fileid=' + CONVERT(varchar, {databaseOwner}{objectQualifier}Files.FileID) = FileAttachmentURL) ELSE FileAttachmentURL END AS FileAttachmentName, P.PostReported FROM {databaseOwner}{objectQualifier}Forum_Posts P WHERE P.ThreadID = @ThreadID GO DELETE FROM {databaseOwner}{objectQualifier}Forum_Templates /* INSERT DeletePost Templates */ INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('DuplicatePost', 'Your post has been deleted because it is a duplicate of an existing post.
[ORIGINALPOST]', 5 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('PolicyPost', 'Your post was deleted because it does not adhere to the policy of this forum.
[ORIGINALPOST]', 5 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('SpamPost', 'Your post has been deleted because it appears to be spam.
[ORIGINALPOST]', 5 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('OffTopicPost', 'Your post has been deleted because it appears to be off topic.
[ORIGINALPOST]', 5 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('ProfanePost', 'Your post has been deleted because it contains content which includes profanity.
[ORIGINALPOST]', 5 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('AdvertisingPost', 'Your post was deleted because it contains advertising in its content.
[ORIGINALPOST]', 5 , -1 , 1) GO /* Post Reported Templates */ INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('DuplicatePost', 'This post has been reported because it is a duplicate of an existing post.
', 9 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('PolicyPost', 'This post was reported because it does not adhere to the policy of this forum.
', 9 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('SpamPost', 'This post has been reported because it appears to be spam.
', 9 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('OffTopicPost', 'This post has been reported because it appears to be off topic.
', 9 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('ProfanePost', 'This post has been reported because it contains content which includes profanity.
', 9 , -1 , 1) GO INSERT INTO {databaseOwner}{objectQualifier}Forum_Templates ([TemplateName] ,[TemplateValue] ,[ForumTemplateTypeID] ,[ModuleID] ,[IsActive]) VALUES ('AdvertisingPost', 'This post was reported because it contains advertising in its content.
', 9 , -1 , 1) GO UPDATE {databaseOwner}[{objectQualifier}Forum_EmailTemplates] SET [EmailSubject] = 'Post Deleted in [FORUMNAME]', [HTMLBody] = ' <table height="100%" cellspacing="0" cellpadding="3" width="100%" border="0"> <tbody> <tr> <td style="BACKGROUND: #dedede" height="20"> <font face="Tahoma" color="#403f3f" size="2"> You can view this forum by clicking <b><a style="COLOR: #cc0000" href="[POSTURL]">here.</a></b><font style="BACKGROUND-COLOR: #dedede" face="Times New Roman" color="#000000" size="3"></font></font> </td> </tr> <tr> <td style="BACKGROUND: #ececec" height="20"> <font face="Tahoma" color="#cc0000" size="2"> <b> [GROUPNAME]</b> </font> </td> </tr> <tr> <td style="PADDING-RIGHT: 2.25pt; PADDING-LEFT: 2.25pt; BACKGROUND: #dedede; PADDING-BOTTOM: 2.25pt; PADDING-TOP: 2.25pt" height="30"> <font face="Tahoma" color="#403f3f" size="3"> <b> [POSTSUBJECT]</b> </font> </td> </tr> <tr> <td style="BACKGROUND: #ececec" align="left" height="20"> <font face="Tahoma" color="#000000" size="2"> by [POSTAUTHOR] posted on [DATEPOSTED]  </font> </td> </tr> <tr> <td style="BACKGROUND: #f8f8f8" valign="top" height="100%"> <p> <font face="Tahoma" color="#cc0000" size="2"> A post in forum [FORUMNAME] has been deleted. </font> </p> <p> <font face="Tahoma" color="#cc0000" size="2">[POSTBODY]</font> </p> <p>[NOTES]</p> <p> </p> </td> </tr> <tr> <td style="BACKGROUND: #dedede" height="20"> <font face="Tahoma" color="#403f3f" size="2"> You can view this forum by clicking <b><a style="COLOR: #cc0000" href="[POSTURL]">here.</a></b><font style="BACKGROUND-COLOR: #dedede" face="Times New Roman" color="#000000" size="3"></font></font> </td> </tr> </tbody> </table> <p align="center"> <font size="1">If you no longer wish to receive notifications, please visit <a href="[PROFILELINK]">Your Profile</a> and change your notifications options.</font> </p>', [TextBody] = ' The post [POSTSUBJECT] in [FORUMNAME] has been deleted. [POSTBODY] [NOTES] To view this forum, visit: [POSTURL] If you no longer wish to receive notifications, please visit [PROFILELINK] and change your notifications options.', [IsActive] = 1 WHERE [EmailTemplateName] = 'ModeratorPostDeleted' GO CREATE PROCEDURE {databaseOwner}[{objectQualifier}Forum_ForumsGetByModuleID] @ModuleID INT AS SELECT ForumID, F.Name FROM {databaseOwner}{objectQualifier}Forum_Forums F INNER JOIN {databaseOwner}{objectQualifier}Forum_Groups G ON F.GroupID = G.GroupID WHERE ModuleID = @ModuleID GO DECLARE @ModuleDefID int SELECT @ModuleDefID = ModuleDefID FROM {databaseOwner}{objectQualifier}ModuleDefinitions WHERE FriendlyName = 'Forum' IF @ModuleDefID > 0 BEGIN DELETE FROM {databaseOwner}{objectQualifier}Lists WHERE DefinitionID = @ModuleDefId END GO