为什么我在sybase中遇到以下sql的语法错误?

时间:2013-10-21 15:27:23

标签: tsql syntax-error sybase sqlanywhere

我在第7行遇到语法错误 - “BEGIN”为while -

 BEGIN
        IF EXISTS(SELECT 1 from table1)
        THEN
            IF EXISTS(SELECT 1 from table2)
            THEN
            WHILE EXISTS(SELECT 1 FROM table3)
            BEGIN
                BEGIN TRANSACTION;

                COMMIT TRANSACTION;
            END
            END IF;
        END IF;
    END

有任何建议或指示吗?

1 个答案:

答案 0 :(得分:1)

问题是@Michael指出,有两种不同类型的方言 - T-SQL and WATCOM-SQL,我必须在Watcom-SQL语法中重写 while while 以与其余的Watcom-sql语法 -

BEGIN
        IF EXISTS(SELECT 1 from table1)
        THEN
            IF EXISTS(SELECT 1 from table2)
            THEN
            WHILE EXISTS(SELECT 1 FROM table3) LOOP
            BEGIN
                BEGIN TRANSACTION;

                COMMIT TRANSACTION;
            END LOOP;
            END IF;
        END IF;
    END