Bil*_*lla 8 sql sql-server sql-server-2008
我想在SQL中的单个IF语句中添加多个条件.
我不擅长SQL并提到一些例子,所有都只显示IF中的一个条件.
这是我的程序.
CREATE PROCEDURE [dbo].[AddApplicationUser]
(
@TenantId BIGINT,
@UserType TINYINT,
@UserName NVARCHAR(100),
@Password NVARCHAR(100)
)
AS
BEGIN
IF ((@TenantId IS NULL) AND (@UserType=0 OR @UserType=1) )
RAISERROR('The value for @TenantID should not be null', 15, 1) -- with log
Run Code Online (Sandbox Code Playgroud)
在IF中这种正确的多语言语法是什么?
是的,这是有效的语法,但它可能不会做你想要的.
RAISERROR
如果你添加一个,你的继续执行将继续执行RETURN
.因此,您需要添加一个块BEGIN ... END
来保存这两个语句.
此外,我不确定为什么你会因为严重程度为15而变得过于饱满.这通常表示语法错误.
最后,我将使用简化条件 IN
CREATE PROCEDURE [dbo].[AddApplicationUser] (@TenantId BIGINT,
@UserType TINYINT,
@UserName NVARCHAR(100),
@Password NVARCHAR(100))
AS
BEGIN
IF ( @TenantId IS NULL
AND @UserType IN ( 0, 1 ) )
BEGIN
RAISERROR('The value for @TenantID should not be null',15,1);
RETURN;
END
END
Run Code Online (Sandbox Code Playgroud)