WaitFor 延迟在 Azure SQL DW 中不起作用

WaitFor Delay not working in Azure SQL DW

我正在尝试 运行 SSMS 中的这个简单代码连接到 Azure SQL DW 它失败了。我尝试了一些不同的变体,但其中 none 似乎有效。

BEGIN
PRINT 'Hello ';
WAITFOR DELAY '00:00:02'
PRINT 'Another';
END

Msg 103010, Level 16, State 1, Line 47
Parse error at line: 2, column: 16: Incorrect syntax near ';'.

正确。目前 Azure SQL DW 不支持 WAITFOR 语句。请注意靠近顶部的此声明的 documentation,它表示此声明是否“适用于”Azure SQL DW。

请为此feature suggestion投票,以帮助 Microsoft 优先考虑此增强功能。

它可能对你帮助不大,但你可以在单独的连接下连接到 master 数据库,运行 WAITFOR 语句。

在我们拥有那个简单的 built-in 函数之前,这是一个该死的解决方法:

1- 创建一个名为“spWait”的 Proc,如下所示:

CREATE PROC spWait @Seconds INT
AS
BEGIN

    DECLARE @BEGIN DATETIME
    DECLARE @END DATETIME 

    SET @BEGIN = GETDATE()
    SET @END = DATEADD("SECOND",@Seconds,@BEGIN)

    WHILE (@BEGIN<@END)
    BEGIN   
        SET @BEGIN=GETDATE()
    END

END

2- 在你的命令之间调用它

--Do this

EXEC spWait 3

--Do that