将多个IF EXIST语句转换为更具可读性的语句

loy*_*low 1 sql sql-server

我有以下多个级别:

IF EXISTS(...)
BEGIN
  IF NOT EXISTS(...)
  BEGIN
  END
END
Run Code Online (Sandbox Code Playgroud)

我怎样才能为变量赋值并执行此操作:

@doesXExist = IF EXISTS(...)

IF @doesExist
  IF NOT EXISTS(...)
  BEGIN
  END
END
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Mar*_*ith 8

SQL Server没有布尔数据类型.你可以做

DECLARE @doesXExist BIT = CASE WHEN EXISTS(...) THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)

(组合DECLARE和设置语法为2008+)

但你不能这样做,IF @doesExist你需要做IF @doesExist = 1IF @doesExist = 'True'