IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_UserUpdateInsert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_UserUpdateInsert] 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_UserUpdateInsert]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_UserUpdateInsert] AS' END GO ALTER PROCEDURE [dbo].[sp_UserUpdateInsert] @UserName nvarchar(50) ,@DisplayName nvarchar(50) ,@Password nvarchar(2048) ,@Role smallint ,@LastModified datetime ,@LastModifiedBy nvarchar(50) ,@LocalOnly bit ,@new_id int output ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN set @errorNumber = 0; set @errorMessage = space(0); declare @Id int set @Id = dbo.foo_IdGetUser(@UserName) if(@Id != 0) begin set @new_id = @Id exec sp_UserUpdate @Id ,@UserName ,@DisplayName ,@Password ,@Role ,@LastModified ,@LastModifiedBy ,@LocalOnly, @errorNumber output, @errorMessage output end else begin exec sp_UserInsert @UserName ,@DisplayName ,@Password ,@Role ,@LastModified ,@LastModifiedBy ,@LocalOnly ,@new_id output, @errorNumber output, @errorMessage output end END GO