Sql server 更新存储过程MS SQL后检查记录值

Sql server 更新存储过程MS SQL后检查记录值,sql-server,Sql Server,这将执行一个存储过程 EXEC dbo.Web_update @hHomeEmail = 'me@me.com', @pPassword = 'XXXXX', @mMemberID = '123456' 存储过程 UPDATE Member SET pass_w = @pPassword, HomeEmail = @hHomeEmail WHERE MemberID=@mMemberID; 我想检查HomeEmail的值,并在更新后传递w(如果为NULL或不返回布尔值)作为

这将执行一个存储过程

EXEC dbo.Web_update
 @hHomeEmail = 'me@me.com',
 @pPassword = 'XXXXX',
 @mMemberID = '123456'
存储过程

 UPDATE Member 
 SET pass_w = @pPassword, 
 HomeEmail = @hHomeEmail
 WHERE MemberID=@mMemberID;
我想检查HomeEmail的值,并在更新后传递w(如果为NULL或不返回布尔值)作为该调用的结果

----------更新----------

现在我想检查一下:

pass_w=NULL

通过w=“”

HomeEmail=NULL

HomeEmail=''

如果其中一个被强制转换(1为位)


ELSE CAST(0为位)

您可以将输出参数添加到存储过程中:

 CREATE PROCEDURE dbo.Web_update
 (
     @hHomeEmail = varchar(10),
     @pPassword = varchar(10),
     @mMemberID = varchar(10)
     @@pIsNull bit OUTPUT
 )
 AS
 UPDATE Member 
 SET pass_w = @pPassword, 
 HomeEmail = @hHomeEmail
 WHERE MemberID=@mMemberID;

 SELECT @pIsNull = CAST(CASE WHEN EXISTS (
                                          SELECT 1 
                                          FROM Member 
                                          WHERE MemberID=@mMemberID 
                                          AND pass_w IS NULL 
                                          AND HomeEmail IS NULL) THEN 1 
                             ELSE 0 END As Bit)

为什么首先在这些列中允许null?HomeEmail和pass_w都允许null的原因可能是重复的,稍后会添加到成员表中。现在,会员可以在线登录,但必须更新HomeEmail并通过才能继续。
 CREATE PROCEDURE dbo.Web_update
 (
     @hHomeEmail = varchar(10),
     @pPassword = varchar(10),
     @mMemberID = varchar(10)
     @@pIsNull bit OUTPUT
 )
 AS
 UPDATE Member 
 SET pass_w = @pPassword, 
 HomeEmail = @hHomeEmail
 WHERE MemberID=@mMemberID;

 SELECT @pIsNull = CAST(CASE WHEN EXISTS (
                                          SELECT 1 
                                          FROM Member 
                                          WHERE MemberID=@mMemberID 
                                          AND pass_w IS NULL 
                                          AND HomeEmail IS NULL) THEN 1 
                             ELSE 0 END As Bit)