ALTER PROCEDURE [dbo].[sp_DASUpdateInsert] @DASId int = 0 ,@SerialNumber nvarchar(50) = null ,@Type int ,@MaxModules int ,@MaxMemory bigint ,@MaxSampleRate decimal(18,0) ,@MinSampleRate decimal(18,0) ,@FirmwareVersion nvarchar(50) ,@CalDate datetime ,@ProtocolVersion int ,@LastModified datetime ,@LastModifiedBy nvarchar(50) ,@Version int ,@LocalOnly bit ,@LastUsed datetime ,@LastUsedBy nvarchar(50) ,@Connection nvarchar(50) ,@Channels int ,@Position nvarchar(50) ,@ChannelTypes nvarchar(255) ,@Reprogramable bit ,@Reconfigurable bit ,@IsModule bit ,@PositionOnDistributor smallint ,@PositionOnChain smallint ,@Port smallint ,@ParentDAS nvarchar(50) ,@FirstUseDate datetime null ,@TestId int null ,@GroupId int null ,@StandIn bit null ,@new_id int OUTPUT ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN set @errorNumber = 0 set @errorMessage = space(0) SET NOCOUNT ON; if(@DASId = 0) begin set @DASId = dbo.foo_IdGetDAS(@SerialNumber) end if(@DASId != 0) begin exec dbo.sp_DASUpdate @DASId ,@SerialNumber ,@Type ,@MaxModules ,@MaxMemory ,@MaxSampleRate ,@MinSampleRate ,@FirmwareVersion ,@CalDate ,@ProtocolVersion ,@LastModified ,@LastModifiedBy ,@Version ,@LocalOnly ,@LastUsed ,@LastUsedBy ,@Connection ,@Channels ,@Position ,@ChannelTypes ,@Reprogramable ,@Reconfigurable ,@IsModule ,@PositionOnDistributor ,@PositionOnChain ,@Port ,@ParentDAS ,@FirstUseDate ,@TestId ,@GroupId ,@StandIn ,@new_id ,@errorNumber output, @errorMessage output SET @new_id = @DASId end else begin exec dbo.sp_DASInsert @SerialNumber ,@Type ,@MaxModules ,@MaxMemory ,@MaxSampleRate ,@MinSampleRate ,@FirmwareVersion ,@CalDate ,@ProtocolVersion ,@LastModified ,@LastModifiedBy ,@Version ,@LocalOnly ,@LastUsed ,@LastUsedBy ,@Connection ,@Channels ,@Position ,@ChannelTypes ,@Reprogramable ,@Reconfigurable ,@IsModule ,@PositionOnDistributor ,@PositionOnChain ,@Port ,@ParentDAS ,@FirstUseDate ,@TestId ,@GroupId ,@StandIn ,@new_id output ,@errorNumber output, @errorMessage output end END