CREATE PROCEDURE [dbo].[sp_SensorsStreamInputUpdateInsert] @Id INT=NULL, @SerialNumber NVARCHAR (255), @UDPAddress NVARCHAR (50), @LastModified DATETIME, @LastModifiedBy NVARCHAR (50), @UserTags VARBINARY (MAX), @Broken BIT, @DoNotUse BIT, @new_id INT OUTPUT, @errorNumber INT OUTPUT, @errorMessage NVARCHAR (255) OUTPUT AS BEGIN SET NOCOUNT ON SET @errorNumber = 0 SET @errorMessage = '' DECLARE @SensorType AS TINYINT DECLARE @SensorId AS INT SELECT @SensorType = [TypeId] FROM [dbo].[SensorsType] WHERE [SensorType]='StreamInput' SELECT @SensorId = A.[Id] from [dbo].[Sensors] AS A INNER JOIN [dbo].SensorsType AS B ON A.SensorType=B.TypeId WHERE B.TypeId=@SensorType AND A.SerialNumber=@SerialNumber IF( @SensorId IS NULL) BEGIN INSERT INTO [dbo].[Sensors] ([SensorType], [SerialNumber]) VALUES (@SensorType, @SerialNumber) SELECT @SensorId = SCOPE_IDENTITY() SET @new_id = @SensorId INSERT INTO [dbo].[SensorsStreamInput] ([SensorId], [UDPAddress], [LastModified], [LastModifiedBy], [UserTags], [Broken], [DoNotUse]) VALUES (@SensorId, @UDPAddress, @LastModified, @LastModifiedBy, @UserTags, @Broken, @DoNotUse) END ELSE BEGIN SET @new_id = @SensorId UPDATE [dbo].SensorsStreamInput SET [UDPAddress]=@UDPAddress, [LastModified]=@LastModified, [LastModifiedBy]=@LastModifiedBy, [UserTags]=@UserTags, [Broken]=@Broken, [DoNotUse]=@DoNotUse WHERE [SensorId] = @SensorId END END IF(@@error != 0) BEGIN SET @errorNumber = error_number() SET @errorMessage = error_message() END