aspnet_Users_CreateUser:这个存储过程主要是创建用户

1、首先检查是否存在存储过程,存在则放弃建立:
if exist(select * from dbo.sysobjects where id = object_id(N'[dbo.].[aspnet_Users_CreateUser]') and OBJECTPROPERTY(id,N'isProcedure')=1)
drop procedure

ASPNETDB-存储过程研究(aspnet_Users_CreateUser)if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[aspnet_Users_CreateUser]'and OBJECTPROPERTY(id, N'IsProcedure'= 1)
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
drop procedure [dbo].[aspnet_Users_CreateUser]
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
GO
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
SET QUOTED_IDENTIFIER OFF 
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
GO
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
SET ANSI_NULLS ON 
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
GO


2、参数声明:

ASPNETDB-存储过程研究(aspnet_Users_CreateUser)CREATE PROCEDURE [dbo].aspnet_Users_CreateUser
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
@ApplicationId    uniqueidentifier,
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
@UserName         nvarchar(256),
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
@IsUserAnonymous  bit,
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
@LastActivityDate DATETIME,
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
@UserId           uniqueidentifier OUTPUT
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
AS

3、首先检查用户名是否为空、是否存在,存在则返回-1,否则,插入并返回0

ASPNETDB-存储过程研究(aspnet_Users_CreateUser)BEGIN
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
IF@UserId IS NULL )
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)        
--Don't understand why is NEWID()
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
        SELECT @UserId = NEWID()    
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
ELSE
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
BEGIN
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)        
--if exist, return -1
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
        IFEXISTSSELECT UserId FROM dbo.aspnet_Users
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)                    
WHERE @UserId = UserId ) )
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)            
RETURN -1
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
END
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
--insert data
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
    INSERT dbo.aspnet_Users (ApplicationId, UserId, UserName, LoweredUserName, IsAnonymous, LastActivityDate)
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
VALUES (@ApplicationId@UserId@UserNameLOWER(@UserName), @IsUserAnonymous@LastActivityDate)
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)    
RETURN 0
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
END
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
GO
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
SET QUOTED_IDENTIFIER OFF 
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
GO
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
SET ANSI_NULLS ON 
ASPNETDB-存储过程研究(aspnet_Users_CreateUser)
GO

4、心得:下面一句话值得学习:
BEGIN
    IF(EXISTS(SELECT UserId FROM dbo.asp_Users WHERE @UserId = UserId))
        RETURN -1
END

相关文章:

  • 2021-10-20
  • 2022-12-23
  • 2022-02-03
  • 2021-09-14
  • 2022-12-23
  • 2021-12-22
  • 2022-12-23
  • 2021-09-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-08
  • 2021-08-04
  • 2021-07-20
  • 2021-08-25
  • 2021-06-01
相关资源
相似解决方案