也许有人已经问过这个,但我找不到这个问题的恰当答案。
如果我有,请按照以下查询:
SELECT
column1,
column2,
column3
FROM Table1 AS t1
WAITFOR DELAY '10:00:00'
此查询返回大约100000行。
WAITFOR
语句是否等待10个小时才告诉SQL Server执行查询并立即生成结果或SQL Server执行查询并将结果保存在RAM中10个小时然后通过网络发送或只显示?
我在这里错过了什么吗?
如果有人给我一些证明第一或第二种解决方案的真实例子,我将不胜感激。
我执行了下一个查询:
SELECT GETDATE()
SELECT GETDATE()
WAITFOR DELAY '00:00:05'
结果是两个相同的日期。在此基础上,我将得出结论,SQL Server会立即执行查询并将结果保留一段时间以显示,但这对我来说毫无意义。
答案 0 :(得分:0)
根据docs,WAITFOR
命令用于在指定的时间内阻止语句或事务。在这种情况下,您将使用它来延迟后续语句。换句话说,您希望在 WAITFOR
命令之后执行某些,而不是之前。以下是一些例子:
以下示例在延迟两小时后执行存储过程。
BEGIN
WAITFOR DELAY '02:00';
EXECUTE sp_helpdb;
END;
GO
以下示例在下午10:20执行存储过程sp_update_job。 (22:20)。
USE msdb;
EXECUTE sp_add_job @job_name = 'TestJob';
BEGIN
WAITFOR TIME '22:20';
EXECUTE sp_update_job @job_name = 'TestJob',
@new_name = 'UpdatedJob';
END;
GO