IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DASDelete]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_DASDelete] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DASDelete]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_DASDelete] AS' END GO ALTER PROCEDURE [dbo].[sp_DASDelete] @SerialNumber nvarchar(50) = null ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN SET NOCOUNT ON; set @errorNumber = 0 set @errorMessage = space(0) if(@SerialNumber is null) begin set @errorMessage = 1560 set @errorNumber = 'An invalid parameter or option was specified for procedure' end else begin begin try /* will delete all records when all paramerers are null*/ begin transaction t_DeleteDAS declare @DASId int set @DASId = dbo.foo_IdGetDAS(@SerialNumber) update [dbo].[TestObjectSensors] set DASId = 0 where DASId = @DASId delete from [dbo].[TestSetupDASSettings] where DASId = @DASId delete from [dbo].[TestObjectHardware] where DASId = @DASId delete from [dbo].[TestSetupHardware] where DASId = @DASId delete from [dbo].[LevelTriggers] where DASId = @DASId delete from [dbo].[DASChannels] where DASId = @DASId delete from [dbo].[DAS] where DASId = @DASId commit transaction [t_DeleteDAS] end try begin catch set @errorMessage = error_message() set @errorNumber = error_number() rollback transaction [t_DeleteDAS] end catch end END GO