IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_TestSetupsMarkIncomplete]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_TestSetupsMarkIncomplete] 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_TestSetupsMarkIncomplete]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_TestSetupsMarkIncomplete] AS' END GO ALTER PROCEDURE [dbo].[sp_TestSetupsMarkIncomplete] @SensorId int = null , @SensorSerialNumber varchar(50) = null , @Message varchar(255) = null , @TestSetupId int = null , @TestSetupName varchar(50) = null , @errorNumber int output , @errorMessage nvarchar(250) output AS BEGIN set @errorNumber = 0 set @errorMessage = space(0) begin try if(@SensorSerialNumber is null) begin set @TestSetupId = [dbo].[foo_IdGetTestSetup](@TestSetupName) update TestSetups SET Dirty=1, Complete=0 , ErrorMessage = isnull(@Message, ErrorMessage) where @TestSetupName is null or TestSetupId = @TestSetupId end else begin if(@SensorId is null) begin set @SensorId = [dbo].[foo_IdGetSensor](@SensorSerialNumber) end update TestSetups set Dirty = 1 , Complete = 0 , ErrorMessage = isnull(@Message, ErrorMessage) from TestObjectSensors s inner join TestSetupObjects t ON s.TestObjectId = t.TestObjectId inner join TestSetups ts on ts.TestSetupId = t.TestSetupId WHERE s.SensorId = @SensorId end end try begin catch set @errorMessage = error_message() set @errorNumber = error_number() end catch END GO