IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_SensorCalibrationsDelete]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_SensorCalibrationsDelete] 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_SensorCalibrationsDelete]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_SensorCalibrationsDelete] AS' END GO ALTER PROCEDURE [dbo].[sp_SensorCalibrationsDelete] @SensorSerialNumber nvarchar(50) = null ,@CalibrationDate datetime = null ,@ModifiedDate datetime = null ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN set @errorNumber = 0 set @errorMessage = space(0) declare @SensorId int set @SensorId = dbo.foo_IdGetSensor(@SensorSerialNumber) declare @tSensorCalibrations table(SensorCalibrationId int) declare @tSensorCalibrationRecords table(SensorCalibrationRecordId int) insert into @tSensorCalibrations (SensorCalibrationId) select SensorCalibrationId from [dbo].[SensorCalibrations] where @SensorSerialNumber is null or SensorId = @SensorId and @CalibrationDate is null or CalibrationDate = @CalibrationDate and @ModifiedDate is null or ModifyDate = @ModifiedDate insert into @tSensorCalibrationRecords (SensorCalibrationRecordId) select SensorCalibrationRecordId from SensorCalibrationRecord where SensorCalibrationId in (select SensorCalibrationId from @tSensorCalibrations) delete from [dbo].[SensorCalibrationRecordIRTracc] where SensorCalibrationRecordId in (select SensorCalibrationRecordId from @tSensorCalibrationRecords) delete from [dbo].[SensorCalibrationRecordPolynomial] where SensorCalibrationRecordId in (select SensorCalibrationRecordId from @tSensorCalibrationRecords) delete from [dbo].[SensorCalibrationRecord] where SensorCalibrationId in (select SensorCalibrationId from @tSensorCalibrations) delete from [dbo].[SensorCalibrations] where SensorCalibrationId in (select SensorCalibrationId from @tSensorCalibrations) END GO