我有:
DECLARE @Authenticated BIT
If @@ROWCOUNT > 0
begin
SELECT @Authenticated = 1
end ELSE
begin
SELECT @Authenticated = 0
end
有没有一种方法可以在没有BEGIN END的情况下执行此操作,并且还设置BIT数据类型以表示True的假的好方法?
答案 0 :(得分:2)
您可以使用CASE
更简洁地执行此操作,如下所示:
SET @Authenticated = (SELECT CASE WHEN @@ROWCOUNT >0 THEN 1 ELSE 0 END)
此外,BIT
是表示True / False的不错选择,因为这几乎就是比特工作 - 0或1。
答案 1 :(得分:1)
您可以更改IF .. ELSE
构造,如下所示,并使用SET
命令
DECLARE @Authenticated BIT
If @@ROWCOUNT > 0
SET @Authenticated = 1
ELSE
SET @Authenticated = 0
答案 2 :(得分:0)
DECLARE @Authenticated BIT
SET @Authenticated = @@ROWCOUNT
也应该起作用,因为BIT值如果不为零,则为true / 1。