SQL Server 2008存储过程中的复合条件

时间:2012-10-24 15:30:16

标签: sql-server-2008 tsql

如果存储过程允许处理复合条件,请告诉我:

if(
    ( (select Count(*) from dbo.Membership where EmailID=@emailID) >0) 
                                  || 
    ((select Count(*) from dbo.Allocation where ResourceEmail=@emailID)>0))
)

1 个答案:

答案 0 :(得分:5)

使用OR代替||

如果只是检查是否存在,那么我会使用EXISTS代替COUNT,因为它会在它第一次存在时停止,而不是全部计算...

IF EXISTS(SELECT 1 FROM dbo.Membership WHERE EmailId = @emailID)
    OR EXISTS(SELECT 1 FROM dbo.Allocation where ResourceEmail=@emailID)
    BEGIN
       -- emailID exists in one of the 2 tables
    END