Files
DP44/DataPRO/Modules/Database/DatabaseMigrationScripts/.svn/pristine/71/71a8158dce7e9c133aae4b573c53f2fa34c7fbc5.svn-base

91 lines
6.9 KiB
Plaintext
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
<EFBFBD><EFBFBD>ALTER PROCEDURE [dbo].[sp_TestSetupsDeleteManyByDate]
@DeleteDateBefore DATETIME = NULL,
@errorNumber INT OUTPUT,
@errorMessage NVARCHAR(255) OUTPUT
AS
BEGIN
SET @errorNumber = 0;
SET @errorMessage = SPACE(0);
BEGIN TRY
BEGIN TRANSACTION [tDeleteTestSetupsMany]
DELETE TSOMD FROM [dbo].[TestSetupObjectMetaData] AS TSOMD
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON TSOMD.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
DELETE TSH FROM [dbo].[TestSetupHardware] AS TSH
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON TSH.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
DELETE LT FROM [dbo].[LevelTriggers] AS LT
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON LT.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
DELETE CC FROM [dbo].[CalculatedChannels] AS CC
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON CC.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
DELETE TG FROM [dbo].[TestGraphs] AS TG
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON TG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
DELETE FROM [dbo].[ROIPeriodChannels] WHERE TestSetupROIId IN
(SELECT TestSetupROIId FROM [dbo].[TestSetupROIs] AS TG
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON TG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore)
DELETE TSR FROM [dbo].[TestSetupROIs] AS TSR
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON TSR.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
/*Delete group channel settings*/
DELETE GCS FROM [dbo].[GroupChannelSettings] AS GCS
INNER JOIN [dbo].[Channels] AS C ON GCS.ChannelId=C.Id
INNER JOIN [dbo].[Groups] AS G ON C.GroupId=G.Id
INNER JOIN [dbo].TestSetupGroups AS TSG ON G.Id=TSG.GroupId
INNER JOIN [dbo].[TestSetups] TS ON TSG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
/*Delete group hardware*/
DELETE GH FROM [dbo].[GroupHardware] AS GH
INNER JOIN [dbo].[TestSetupGroups] AS TSG ON GH.GroupId=TSG.GroupId
INNER JOIN [dbo].[TestSetups] TS ON TSG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
/*Delete group channels*/
DELETE C FROM [dbo].[Channels] AS C
INNER JOIN [dbo].[TestSetupGroups] AS TSG ON C.GroupId = TSG.GroupId
INNER JOIN [dbo].[TestSetups] TS ON TSG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
/*grab a copy of all groups associated with test so we can delete them*/
SELECT [GroupId] INTO #temptable
FROM [DataPro].[dbo].[TestSetupGroups] AS TSG
INNER JOIN [DataPro].[dbo].[TestSetups] TS ON TSG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
/*unassociate the group from the test setup*/
DELETE TSG FROM [dbo].[TestSetupGroups] AS TSG
INNER JOIN [dbo].[TestSetups] TS ON TSG.TestSetupId = TS.TestSetupId
WHERE TS.LastModified < @DeleteDateBefore
/*delete the groups*/
DELETE FROM [dbo].[Groups] WHERE [Id] IN (SELECT [GroupId] FROM #tempTable)
DELETE TS FROM [dbo].[TestSetups] TS
WHERE TS.LastModified < @DeleteDateBefore
COMMIT TRANSACTION [tDeleteTestSetupsMany]
END TRY
BEGIN CATCH
SET @errorNumber = error_number()
SET @errorMessage = error_message()
ROLLBACK TRANSACTION [tDeleteTestSetupsMany]
END CATCH
END