SQL 嵌套 BEGIN END 块给出 SQL 错误 (102)

SQL nesting BEGIN END Blocks gives SQL Error (102)

这段简单的 SQL 代码出现以下错误。任何想法为什么?任何 BEGIN ... END 块都会导致发生此错误

/* SQL 错误 (156):关键字 'END' 附近的语法不正确。 */

DECLARE @PROCESSEDCOUNT INT = 0
WHILE (@PROCESSEDCOUNT < 10)
BEGIN
    SET @PROCESSEDCOUNT +=1
    IF 1=1
    BEGIN
        -- Stuff happens here
    END
END 

这是 SQL 服务器上的 运行 - MSSQL15

您需要的不仅仅是 begin/end 块中的评论。

尝试以下方法

IF 1=1
    BEGIN
      SELECT @PROCESSEDCOUNT 
    END

您必须在 BEGIN 和 END 块之间放置一些内容 例如:

DECLARE @PROCESSEDCOUNT INT= 1

WHILE (@PROCESSEDCOUNT < 10)
BEGIN
    SET @PROCESSEDCOUNT +=1
    IF 1=1
    BEGIN
        PRINT '1'
    END
END

您没有任何内部 BEGIN...END 条件。你可以删除它。

DECLARE @PROCESSEDCOUNT INT = 0
WHILE (@PROCESSEDCOUNT < 10)
BEGIN
    SET @PROCESSEDCOUNT +=1
        -- Stuff happens here
END