91 lines
6.9 KiB
Plaintext
91 lines
6.9 KiB
Plaintext
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 |