sql - 如果存在(从中选择 1)和(从中选择 0)之间的区别

标签 sql sql-server sql-server-2008

select 1 from 和 select 0 from 或 select any integer from 有什么区别吗?

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

但是,select 1 from 与select 0 from 和or select 29 from 不同吗?

在仅检查表/存储过程是否存在的情况下,如果存在,则将其删除并重新创建(在这些情况下)

最佳答案

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

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

例子:

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

关于sql - 如果存在(从中选择 1)和(从中选择 0)之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079724/

相关文章:

mysql - SQL 按列中的数字排序

sql-server - 如何使用 Inno Setup 连接到 MS SQL Server?

用于递增值的 SQL Case 语句

mysql - SQL查询,NOT IN返回错误

sql - 动态检查变量是否在 PL SQL 中具有值

sql-左连接-计数

sql-server - 如何在ARM模板中定义使用现有的数据库服务器?

c# - sql connection.open() 异常

sql-server-2008 - 导出和导入数据库中的选定行

sql-server - 由于嵌套容器而导致重复的日志条目