首页 > 解决方案 > 如果数据不存在 Wait Else RUN SQL

问题描述

构建:检查 SQL 查询是否会返回结果的有效方法

是否可以在 SQL 语句的开头添加等待脚本?

IF EXISTS(
      select * from myTable 
      where id=7)

)
SELECT * From myTable
ELSE --(Wait 1 minute, then Run Again)
SELECT * From myTable

标签: sqlsql-server-2017

解决方案


您可以使用 WAITFOR 暂停,并使用 @@ROWCOUNT 确定查询是否返回结果。所以像:

set nocount on

drop table if exists #t;

--create an empty temp table
select * 
into #t
from tt 
where 1=0

while (1=1)
begin
  insert into #t
  select * from tt 

  if (@@ROWCOUNT > 0)
  begin
    break;
  end

   waitfor delay '00:00:05'
end

set nocount off;
select * from #t;

推荐阅读