下面的SQL语句该怎么写啊?

IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[TheWay_Membership_CreateUser]'AND OBJECTPROPERTY(id,N'IsProcedure'= 1)
DROP PROCEDURE [dbo].[TheWay_Membership_CreateUser]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

CREATE PROCEDURE [dbo].[TheWay_Membership_CreateUser]
    
@UserName                               nvarchar(256),
    
@Password                               nvarchar(128),
    
@Salt                           nvarchar(128),
    
@Email                                  nvarchar(256),
    
@PasswordQuestion                       nvarchar(256),
    
@PasswordAnswer                         nvarchar(128),
    
@IsApproved                             bit,
    
@UniqueEmail                            int      = 0,
    
@PasswordFormat                         int      = 0,
    
@NewUserID  int OUTPUT 
AS
    
PRINT 'ERROR: No title_id was specified.'
    
SELECT @NewUserID=0    
   
--检查是否已经有相同的用户名存在,存在则返回-1
   IF ( EXISTS ( SELECT UserID FROM   dbo.TheWay_Users WHERE  UserName = @UserName ) )
         
BEGIN
            
RETURN(-1)
         
END
   
ELSE
        
IF(@UniqueEmail = 1)
            
BEGIN--检查是否要求要不重复的Email,如果要求,则检查是否已经存在相同的Email,如果存在返回-2
                IF(EXISTS(SELECT UserID FROM dbo.TheWay_Users WHERE Email = @Email))
                    
BEGIN
                        
RETURN(-2)
                    
END
            
END
  
ELSE
    
BEGIN
        
--插入必要的数据到数据库,并将UserID查询返回,成功则返回1
        INSERT INTO dbo.TheWay_Users
        (
        UserName,
        Password,
        PasswordFormat,
        Salt,
        PasswordQuestion,
        PasswordAnswer,
        Email,
        IsApproved
        )
        
VALUES
        (
        
@UserName,
        
@Password,
        
@PasswordFormat,
        
@Salt,
        
@PasswordQuestion,
        
@PasswordAnswer,
        
@Email,
        
@IsApproved        
        )
        
IF(EXISTS(SELECT @NewUserID=UserID FROM dbo.TheWay_Users Where UserName=@UserName))
            
BEGIN
                
RETURN(1)
            
END
        
ELSE
            
BEGIN
                
RETURN(-3)
            
END
        
END
GO
我是个菜鸟,帮帮忙。
posted @ 2006-03-03 22:33 fuyude.net 阅读(429) 评论(0) 编辑 收藏