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
我正在尝试 运行 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