IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DASChannelsUpdateInsert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_DASChannelsUpdateInsert] 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_DASChannelsUpdateInsert]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_DASChannelsUpdateInsert] AS' END GO ALTER PROCEDURE [dbo].[sp_DASChannelsUpdateInsert] @HardwareId nvarchar(50) ,@ChannelIdx int ,@SupportedBridges int ,@SupportedExcitations int ,@DASDisplayOrder int ,@LocalOnly bit ,@SupportedDigitalInputModes int ,@SupportedSquibFireModes int ,@SupportedDigitalOutputModes int ,@ModuleSerialNumber nvarchar(16) ,@ModuleArrayIndex int ,@new_id int OUTPUT ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN SET NOCOUNT ON; set @errorNumber = 0 set @errorMessage = space(0) declare @DASId int set @DASId = dbo.foo_IdGetDAS(@HardwareId) set @new_id = dbo.foo_IdGetDASChannel(@DASId, @ChannelIdx) if(exists(select * from [dbo].[DASChannels] where DASChannelId = @new_id)) begin exec dbo.sp_DASChannelsUpdate @DASId ,@ChannelIdx ,@SupportedBridges ,@SupportedExcitations ,@DASDisplayOrder ,@LocalOnly ,@SupportedDigitalInputModes ,@SupportedSquibFireModes ,@SupportedDigitalOutputModes ,@ModuleSerialNumber ,@ModuleArrayIndex ,@errorNumber output ,@errorMessage output end else begin exec dbo.sp_DASChannelsInsert @DASId ,@ChannelIdx ,@SupportedBridges ,@SupportedExcitations ,@DASDisplayOrder ,@LocalOnly ,@SupportedDigitalInputModes ,@SupportedSquibFireModes ,@SupportedDigitalOutputModes ,@ModuleSerialNumber ,@ModuleArrayIndex ,@new_id output ,@errorNumber output ,@errorMessage output set @new_id = SCOPE_IDENTITY(); end END GO