SQL中"IF EXISTS"和"IF NOT EXISTS"之间的区别?

car*_*ene 6 sql sql-server

我是SQL新手.我想知道当我使用"IF EXISTS"或"IF NOT EXISTS"时会发生什么.例如:以下两个陈述之间有什么区别:

声明1 :( EXISTS)

IF EXISTS( SELECT ORDER_ID FROM DBO.ORDER_DETAILS WHERE ORDER_ID = 11032 )
BEGIN
     DELETE FROM DBO.ORDER_DETAILS WHERE ORDER_ID = 11032
END
Run Code Online (Sandbox Code Playgroud)

声明2 :( 不存在)

IF NOT EXISTS( SELECT ORDER_ID FROM DBO.ORDER_DETAILS WHERE ORDER_ID = 11032 )
BEGIN
     DELETE FROM DBO.ORDER_DETAILS WHERE ORDER_ID = 11032
END
Run Code Online (Sandbox Code Playgroud)

会出现什么IF EXISTSIF NOT EXISTS返回?这两者中哪个更好?何时使用IF EXISTS以及何时使用IF NOT EXISTS

jas*_*son 2

IF EXISTS检查结果集不为空,并IF NOT EXISTS检查结果集是否空。

这两者哪个更好?

为您提供适当语义的一个。

何时使用“IF EXISTS”以及何时使用“IF NOT EXISTS”

当您需要检查结果集非空或空时。