IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_SensorDeleteAll]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_SensorDeleteAll] 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_SensorDeleteAll]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_SensorDeleteAll] AS' END GO ALTER PROCEDURE [dbo].[sp_SensorDeleteAll] @errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN begin transaction [tDeleteSensors] begin try exec [dbo].[sp_TestSetupsMarkIncomplete] null, null, 'Some channels have no sensor assigned.', null, null, @errorNumber output ,@errorMessage output declare @tAllSensors table (SensorId int, SensorType smallint) insert into @tAllSensors select SensorId, SensorType from [dbo].[Sensors] delete from [dbo].[TestObjectSensors] where SensorId in (select SensorId from @tAllSensors) delete from [dbo].[TestObjectChannelSettings] where SensorId in (select SensorId from @tAllSensors) delete from [dbo].[TestChannelSettings] where SensorId in (select SensorId from @tAllSensors) exec [dbo].[sp_SensorCalibrationsDelete] null, null, null, @errorNumber output, @errorMessage output delete from [dbo].[SensorsAnalog] delete from [dbo].[SensorsDigitalIn] delete from [dbo].[SensorsDigitalOut] delete from [dbo].[SensorsSquib] delete from [dbo].[Sensors] commit transaction [tDeleteSensors] end try begin catch rollback transaction [tDeleteSensors] set @errorMessage = error_message() set @errorNumber = error_number() end catch END GO