54 lines
2.7 KiB
Plaintext
54 lines
2.7 KiB
Plaintext
|
|
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
|
||
|
|
|
||
|
|
/*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
|