if exists (select 1 from) 和 (select 0 from) 之间的区别

Difference between if exists (select 1 from) and (select 0 from)

select 1 和 select 0 或 select 任何整数有什么区别吗?

我知道 select * from 是一个昂贵的操作。

但是,select 1 不同于 select 0 和 or select 29?

在仅检查 table/stored 过程是否存在的上下文中,如果存在,则删除它并重新创建(在这些情况下)

你们的表现会是一样的。当您使用 exists 时,SQL 服务器不会评估语句的 SELECT 部分中的任何内容。它只是解析为一个布尔值。这可以通过 1 除以 0 来证明。通常这会引发错误,但在 EXISTS 中,它运行时没有错误。

关于你的具体用途,EXISTS检查的开销几乎没有。如果您 运行 遇到性能问题,那不是脚本的 EXISTS 部分。

示例:

IF EXISTS(SELECT 1/0 FROM <TABLE> WHERE 1=1) BEGIN SELECT 'In the exists' END