【问题标题】:Microsoft SQL Server 2005 check if temporary table emptyMicrosoft SQL Server 2005 检查临时表是否为空
【发布时间】:2010-04-14 19:15:11
【问题描述】:

是否有快速/高效的方法来检查表是否为空?

DECLARE @StartEndTimes TABLE
(
    id bigint,
    StartTime datetime,
    EndTime datetime
)

IF @StartEndTimes IS NOT NULL

【问题讨论】:

  • 仅供参考 上面的代码创建了一个表变量而不是一个临时表。临时表以 # 开头并存储在 tempdb 中,我相信它会继续存在,直到重新启动 sql 实例并重新创建 tempdb。
  • 实际上,根据 SQL 专业人士所做的一些研究,它们可能几乎相同(但范围不同):blog.sqlauthority.com/2009/12/15/…

标签: sql-server temp-tables


【解决方案1】:

而不是数你可以;

if exists (select id from @StartEndTimes)
   set @has_stuff = 1

只要碰到一行就会返回。

【讨论】:

  • +1 我也会。它会查找一行并返回...count 必须遍历表
【解决方案2】:

我认为你最好的选择可能是COUNT

DECLARE @StartEndTimes TABLE 
( 
    id bigint, 
    StartTime datetime, 
    EndTime datetime 
)

SELECT COUNT(1) FROM @StartEndTimes

【讨论】:

    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2019-05-05
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多