IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_SensorsDigitalOutInsert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_SensorsDigitalOutInsert] 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_SensorsDigitalOutInsert]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_SensorsDigitalOutInsert] AS' END GO ALTER PROCEDURE [dbo].[sp_SensorsDigitalOutInsert] @SerialNumber nvarchar(50) = null ,@DelayMS float ,@DurationMS smallint ,@DurationMSFloat float ,@OutputMode smallint ,@LimitDuration bit ,@LastModified datetime ,@LastModifiedBy nvarchar(50) ,@Version int ,@UserTags varbinary(max) ,@new_id int output ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN set @errorNumber = 0 set @errorMessage = space(0) if(@SerialNumber is null) begin set @errorNumber = 1560 set @errorMessage = 'An invalid parameter or option was specified for procedure'; end else begin if(exists(select SerialNumber from v_SensorSerialNumber where SerialNumber = @SerialNumber)) begin set @errorNumber = -1 set @errorMessage = 'The sensor serial mumber - ' + ltrim(rtrim(@SerialNumber)) + ' is not unique'; end else begin SET NOCOUNT ON; INSERT INTO [dbo].[SensorsDigitalOut] ([SerialNumber] ,[DelayMS] ,[DurationMS] ,[OutputMode] ,[LimitDuration] ,[LastModified] ,[LastModifiedBy] ,[Version] ,[DurationMSFloat] ,[UserTags]) VALUES ( @SerialNumber ,@DelayMS ,@DurationMS ,@OutputMode ,@LimitDuration ,@LastModified ,@LastModifiedBy ,@Version ,@DurationMSFloat ,@UserTags) set @new_id = scope_identity(); exec dbo.sp_SensorInsert @new_id, 2 /* see table dbo.SensorsType */ end end END GO