68 lines
2.3 KiB
Plaintext
68 lines
2.3 KiB
Plaintext
ALTER PROCEDURE [dbo].[sp_DASDelete]
|
|
@Id INT = NULL,
|
|
@SerialNumber NVARCHAR (50) = NULL,
|
|
@Embedded BIT=0,
|
|
@errorNumber INT OUTPUT,
|
|
@errorMessage NVARCHAR (255) OUTPUT
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SET @errorNumber=0
|
|
SET @errorMessage=''
|
|
|
|
ALTER TABLE [dbo].[Channels] NOCHECK CONSTRAINT [FK_Channels_DASId]
|
|
ALTER TABLE [dbo].[Channels] NOCHECK CONSTRAINT [FK_Channels_SensorId]
|
|
|
|
IF(@Id IS NULL)
|
|
BEGIN
|
|
IF NULLIF(@SerialNumber, '') IS NULL
|
|
BEGIN
|
|
SET @errorNumber = 1
|
|
SET @errorMessage = 'Serial number or Id required'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @Id from [dbo].[DAS] WHERE [SerialNumber]=@SerialNumber
|
|
IF (@Embedded = 0 )
|
|
BEGIN
|
|
UPDATE [dbo].[Channels] SET [DASId] = NULL, [DASChannelIndex]=NULL WHERE [DASId]=@Id
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
DELETE A FROM [dbo].[LevelTriggers] AS A INNER JOIN [dbo].[Channels] AS B on A.ChannelId = B.Id WHERE B.[DASId]=@Id
|
|
DELETE A FROM [dbo].[GroupChannelSettings] AS A INNER JOIN [dbo].[Channels] AS B on A.ChannelId = B.Id WHERE B.[DASId]=@Id
|
|
DELETE FROM [dbo].[Channels] WHERE [DASId]=@Id
|
|
END
|
|
DELETE FROM [dbo].[TestSetupHardware] WHERE [DASId]=@Id
|
|
DELETE FROM [dbo].[GroupHardware] WHERE [DASId]=@Id
|
|
DELETE FROM [dbo].[DASChannels] WHERE [DASId]=@Id
|
|
DELETE FROM [dbo].[DAS] WHERE [DASId] = @Id
|
|
END
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
IF (@Embedded = 0 )
|
|
BEGIN
|
|
UPDATE [dbo].[Channels] SET [DASId] = 0, [DASChannelIndex]=0 WHERE [DASId]=@Id
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
DELETE A FROM [dbo].[LevelTriggers] AS A INNER JOIN [dbo].[Channels] AS B on A.ChannelId = B.Id WHERE B.[DASId]=@Id
|
|
DELETE A FROM [dbo].[GroupChannelSettings] AS A INNER JOIN [dbo].[Channels] AS B on A.ChannelId = B.Id WHERE B.[DASId]=@Id
|
|
DELETE FROM [dbo].[Channels] WHERE [DASId]=@Id
|
|
END
|
|
DELETE FROM [dbo].[TestSetupHardware] WHERE [DASId]=@Id
|
|
DELETE FROM [dbo].[GroupHardware] WHERE [DASId]=@Id
|
|
DELETE FROM [dbo].[DASChannels] WHERE [DASId]=@Id
|
|
DELETE FROM [dbo].[DAS] WHERE [DASId] = @Id
|
|
END
|
|
|
|
ALTER TABLE [dbo].[Channels] CHECK CONSTRAINT [FK_Channels_DASId]
|
|
ALTER TABLE [dbo].[Channels] CHECK CONSTRAINT [FK_Channels_SensorId]
|
|
|
|
IF(@@error != 0)
|
|
BEGIN
|
|
SET @errorNumber = error_number()
|
|
SET @errorMessage = error_message()
|
|
END
|
|
END |