IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_TemplateChannelsDeleteOne]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_TemplateChannelsDeleteOne] 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_TemplateChannelsDeleteOne]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_TemplateChannelsDeleteOne] AS' END GO ALTER PROCEDURE [dbo].[sp_TemplateChannelsDeleteOne] @TemplateChannelId int = 0 ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN set @errorMessage = space(0); set @errorNumber = 0; begin try begin transaction tDeleteTemplateChannel declare @ChannelName varchar(100) declare @MMEChannelId bigint select @ChannelName = NameOfTheChannel, @MMEChannelId = MMEChannelId from [dbo].[TemplateChannels] where [TemplateChannelId] = @TemplateChannelId delete from [dbo].[TestObjectChannelSettings] where ChannelId = @ChannelName delete from [dbo].[TestObjectSensors] where ISOChannelId = @MMEChannelId delete from [dbo].[TestChannelSettings] where [TemplateChannelId] = @TemplateChannelId delete from [dbo].[TemplateChannels] WHERE [TemplateChannelId] = @TemplateChannelId commit transaction tDeleteTemplateChannel end try begin catch set @errorMessage = error_message() set @errorNumber = error_number() rollback transaction tDeleteTemplateChannel end catch; END GO