Files
DP44/DataPRO/Modules/Database/DatabaseMigrationScripts/.svn/pristine/a5/a5571dcee4fc46a6e24dcde9cfc6e78fcfdc28f2.svn-base

61 lines
6.0 KiB
Plaintext
Raw Normal View History

2026-04-17 14:55:32 -04:00
<EFBFBD><EFBFBD>ALTER PROCEDURE [dbo].[sp_TestSetupsDelete]
@TestSetupId INT = 0,
@TestSetupName NVARCHAR(50) = NULL,
@errorNumber INT OUTPUT,
@errorMessage NVARCHAR(255) OUTPUT
AS
BEGIN
SET @errorNumber = 0;
SET @errorMessage = SPACE(0);
BEGIN TRY
BEGIN TRANSACTION [tDeleteTestSetups]
IF(@TestSetupId = 0)
BEGIN
SET @TestSetupId = [dbo].foo_IdGetTestSetup(@TestSetupName)
END
DELETE FROM [dbo].[TestSetupObjectMetaData] where TestSetupId = @TestSetupId
DELETE FROM [dbo].[TestSetupHardware] where TestSetupId = @TestSetupId
DELETE FROM [dbo].[LevelTriggers] where TestSetupId = @TestSetupId
DELETE FROM [dbo].[CalculatedChannels] where TestSetupId = @TestSetupId
DELETE FROM [dbo].[TestGraphs] where TestSetupId = @TestSetupId
--We must delete from ROIPeriodChannels before deleting from TestSetupROIs
DELETE FROM [dbo].[ROIPeriodChannels] WHERE TestSetupROIId IN ( SELECT TestSetupROIId FROM TestSetupROIs
WHERE TestSetupId = @TestSetupId )
DELETE FROM [dbo].[TestSetupROIs] WHERE TestSetupId = @TestSetupId
/*Delete group channel settings*/
DELETE A FROM [dbo].[GroupChannelSettings] AS A INNER JOIN [dbo].[Channels] AS B ON A.ChannelId=B.Id
INNER JOIN [dbo].[Groups] AS C ON B.GroupId=C.Id INNER JOIN [dbo].TestSetupGroups AS D ON C.Id=D.GroupId WHERE D.TestSetupId=@TestSetupId
/*Delete group hardware*/
DELETE A FROM [dbo].[GroupHardware] AS A INNER JOIN [dbo].[TestSetupGroups] AS B ON A.GroupId=B.GroupId WHERE B.TestSetupId=@TestSetupId
/*Delete group channels*/
DELETE A FROM [dbo].[Channels] AS A INNER JOIN [dbo].[TestSetupGroups] AS B ON A.GroupId = B.GroupId WHERE B.TestSetupId=@TestSetupId
/*grab a copy of all groups associated with test so we can delete them*/
SELECT [GroupId] INTO #temptable FROM [dbo].[TestSetupGroups] WHERE [TestSetupId]=@TestSetupId
/*unassociate the group from the test setup*/
DELETE FROM [dbo].[TestSetupGroups] WHERE [TestSetupId] = @TestSetupId
/*delete the groups*/
DELETE FROM [dbo].[Groups] WHERE [Id] IN (SELECT [GroupId] FROM #tempTable)
/*delete test specific hardware */
UPDATE [dbo].[Channels] SET [DASId] = 0, [DASChannelIndex]=0 FROM [dbo].[Channels] AS A INNER JOIN [dbo].[DAS] AS B ON A.DASId=B.DASId WHERE B.TestId=@TestSetupId
DELETE A FROM [dbo].[TestSetupHardware] AS A INNER JOIN [dbo].[DAS] as B ON A.DASId=B.DASId WHERE B.TestId=@TestSetupId
DELETE A FROM [dbo].[GroupHardware] AS A INNER JOIN [dbo].[DAS] as B on A.DASId=B.DASId WHERE B.TestId=@TestSetupId
DELETE A FROM [dbo].[DASChannels] AS A INNER JOIN [dbo].[DAS] AS B on A.DASId=B.DASId WHERE B.TestId=@TestSetupId
DELETE [dbo].[DAS] WHERE [TestId]=@TestSetupId
/*finally delete the test setup*/
DELETE FROM [dbo].[TestSetups] where TestSetupId = @TestSetupId
COMMIT TRANSACTION [tDeleteTestSetups]
END TRY
BEGIN CATCH
SET @errorNumber = error_number()
SET @errorMessage = error_message()
ROLLBACK TRANSACTION [tDeleteTestSetups]
END CATCH
END