Managely – Alarm Biller to Managely database cleanup

The script below is necessary to run before using the database tool that updates Alarm Biller to Managely.

/*********************************************************

 * IT'S A REALLY GOOD IDEA TO WRAP THIS IN A TRANSACTION *

 *********************************************************/

-- Create a new table with a new Id column

SELECT Id = IDENTITY(INT, 1, 1), aChargesGroup.*

INTO aChargesGroup2

FROM aChargesGroup

ORDER BY CreatedDate

-- Add new FK Columns

ALTER TABLE aEstimateItem 

ADD ChargesGroupId2 INT

ALTER TABLE aEstimatePart 

ADD ChargesGroupId2 INT

ALTER TABLE aInvoiceDetail 

ADD ChargesGroupId2 INT

ALTER TABLE aWorkOrderItem 

ADD ChargesGroupId2 INT

ALTER TABLE aWorkOrderPart 

ADD ChargesGroupId2 INT

ALTER TABLE sa_aSalesPackageItem 

ADD ChargesGroupId2 INT

ALTER TABLE sa_aSalesPackagePart 

ADD ChargesGroupId2 INT

-- Populate column

UPDATE aEstimateItem 

SET aEstimateItem.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE aEstimateItem.ChargesGroupId = aChargesGroup2.ChargesGroupId

UPDATE aEstimatePart

SET aEstimatePart.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE aEstimatePart.ChargesGroupId = aChargesGroup2.ChargesGroupId

UPDATE aInvoiceDetail

SET aInvoiceDetail.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE aInvoiceDetail.ChargesGroupId = aChargesGroup2.ChargesGroupId

UPDATE aWorkOrderItem

SET aWorkOrderItem.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE aWorkOrderItem.ChargesGroupId = aChargesGroup2.ChargesGroupId

UPDATE aWorkOrderPart

SET aWorkOrderPart.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE aWorkOrderPart.ChargesGroupId = aChargesGroup2.ChargesGroupId

UPDATE sa_aSalesPackageItem

SET sa_aSalesPackageItem.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE sa_aSalesPackageItem.ChargesGroupId = aChargesGroup2.ChargesGroupId

UPDATE sa_aSalesPackagePart

SET sa_aSalesPackagePart.ChargesGroupId2 = aChargesGroup2.Id 

FROM aChargesGroup2 

WHERE sa_aSalesPackagePart.ChargesGroupId = aChargesGroup2.ChargesGroupId

-- Delete Old Id

ALTER TABLE aChargesGroup2

DROP COLUMN ChargesGroupId

-- Delete Relationships

ALTER TABLE aEstimateItem DROP CONSTRAINT IF EXISTS [FK_aEstimateItem_aChargesGroup]

ALTER TABLE aEstimatePart DROP CONSTRAINT IF EXISTS [FK_aEstimatePart_aChargesGroup]

ALTER TABLE aInvoiceDetail DROP CONSTRAINT IF EXISTS [FK_aInvoiceDetail_aChargesGroup]

ALTER TABLE aWorkOrderItem DROP CONSTRAINT IF EXISTS [FK_aWorkOrderItem_aChargesGroup]

ALTER TABLE aWorkOrderPart DROP CONSTRAINT IF EXISTS [FK_aWorkOrderPart_aChargesGroup]

ALTER TABLE sa_aSalesPackageItem DROP CONSTRAINT IF EXISTS [FK_sa_aSalesPackageItem_aChargesGroup]

ALTER TABLE sa_aSalesPackagePart DROP CONSTRAINT IF EXISTS [FK_sa_aSalesPackagePart_aChargesGroup]

ALTER TABLE aChargesGroup DROP CONSTRAINT IF EXISTS PK_ChargesGroupId

-- Create Relationships

ALTER TABLE aChargesGroup2

ADD CONSTRAINT [PK_aChargesGroup]

PRIMARY KEY CLUSTERED([Id] ASC)

WITH (

       PAD_INDEX = OFF, 

       STATISTICS_NORECOMPUTE = OFF, 

       SORT_IN_TEMPDB = OFF, 

       IGNORE_DUP_KEY = OFF, 

       ONLINE = OFF, 

       ALLOW_ROW_LOCKS = ON, 

       ALLOW_PAGE_LOCKS = ON, 

       FILLFACTOR = 90

) ON [PRIMARY]

ALTER TABLE aEstimateItem WITH CHECK ADD CONSTRAINT [FK_aEstimateItem_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE aEstimateItem CHECK CONSTRAINT [FK_aEstimateItem_aChargesGroup]

ALTER TABLE aEstimatePart WITH CHECK ADD CONSTRAINT [FK_aEstimatePart_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE aEstimatePart CHECK CONSTRAINT [FK_aEstimatePart_aChargesGroup]

ALTER TABLE aInvoiceDetail WITH CHECK ADD CONSTRAINT [FK_aInvoiceDetail_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE aInvoiceDetail CHECK CONSTRAINT [FK_aInvoiceDetail_aChargesGroup]

ALTER TABLE aWorkOrderItem WITH CHECK ADD CONSTRAINT [FK_aWorkOrderItem_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE aWorkOrderItem CHECK CONSTRAINT [FK_aWorkOrderItem_aChargesGroup]

ALTER TABLE aWorkOrderPart WITH CHECK ADD CONSTRAINT [FK_aWorkOrderPart_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE aWorkOrderPart CHECK CONSTRAINT [FK_aWorkOrderPart_aChargesGroup]

ALTER TABLE sa_aSalesPackageItem WITH CHECK ADD CONSTRAINT [FK_sa_aSalesPackageItem_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE sa_aSalesPackageItem CHECK CONSTRAINT [FK_sa_aSalesPackageItem_aChargesGroup]

ALTER TABLE sa_aSalesPackagePart WITH CHECK ADD CONSTRAINT [FK_sa_aSalesPackagePart_aChargesGroup] FOREIGN KEY([ChargesGroupId2])

REFERENCES aChargesGroup2 ([Id])

ON DELETE CASCADE

ALTER TABLE sa_aSalesPackagePart CHECK CONSTRAINT [FK_sa_aSalesPackagePart_aChargesGroup]

-- Rename Columns

EXEC sp_RENAME 'aEstimateItem.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aEstimateItem.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aEstimatePart.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aEstimatePart.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aInvoiceDetail.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aInvoiceDetail.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aWorkOrderItem.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aWorkOrderItem.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aWorkOrderPart.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'aWorkOrderPart.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'sa_aSalesPackageItem.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'sa_aSalesPackageItem.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'sa_aSalesPackagePart.ChargesGroupId', 'OldChargesGroupId', 'COLUMN'

EXEC sp_RENAME 'sa_aSalesPackagePart.ChargesGroupId2', 'ChargesGroupId', 'COLUMN'

-- Rename Tables

EXEC sp_rename aChargesGroup, aChargesGroupOld

EXEC sp_rename aChargesGroup2, aChargesGroup

Was this article helpful?
Thank you for your feedback!
User Icon

Thank you! Your comment has been submitted for approval.