该SQL语法有什么问题?

卢帕克斯

我被告知要对数据库的架构进行一些更改,因此我编写了以下脚本来执行以下操作:

  1. 根据另一个表的值更新表的值
  2. 删除包含指向另一个表的ID的列

当然,只有在id_to_other_table存在的情况下,才应执行整个脚本

这是我的SQL

IF EXISTS (
SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'title_id' AND TABLE_NAME = 'my_table'
)
BEGIN   
    UPDATE
        my_table
    SET
        my_table.title = other_table.value
        FROM
        my_table
        INNER JOIN
        other_table
    ON
        my_table.title_id = other_table.id
    WHERE other_table.language_id = 1 --hardcoded

    ALTER TABLE my_table
    DROP COLUMN title_id
END

我第一次运行此SQL时,代码已正确执行。当我再次运行它时,没有执行任何操作,而是出现了以下错误,并指向ON部分之后的行JOIN

Invalid column name 'my_table.title_id'

如果我将BEGIN-END的内容替换为print "Does the column exists?"正确无显示,则BEGIN-END块由于某种原因抢先结束...

有任何想法吗?

吹牛

实际上,由于在块(批处理)中执行了多个sql语句,所以生成了该错误。批量处理后,就会应用一些规则。由于您正在更改并在1个批处理中引用同一表,因此会发生编译错误。将两个sql语句分开后,您将不会得到编译错误:

    IF EXISTS (
    SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME = 'title_id' AND TABLE_NAME = 'my_table'
    )
    BEGIN   
        UPDATE
            my_table
        SET
            my_table.title = other_table.value
            FROM
            my_table
            INNER JOIN
            other_table
        ON
           my_table.title_id = other_table.id
        WHERE other_table.language_id = 1 --hardcoded

        END

    IF EXISTS (
    SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE COLUMN_NAME = 'title_id' AND TABLE_NAME = 'my_table'
    )
    BEGIN   
        ALTER TABLE my_table
        DROP COLUMN title_id
    END

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mysql查询中的SQL语法有什么问题?

来自分类Dev

此PHP代码中的SQL语法有什么问题?

来自分类Dev

这个 SQL 命令的语法有什么问题

来自分类Dev

这个Bison语法有什么问题?

来自分类Dev

我的pdo语法有什么问题?

来自分类Dev

这个Gradle语法有什么问题?

来自分类Dev

我的语法有什么问题?

来自分类Dev

PHP我的语法有什么问题

来自分类Dev

这种语法有什么问题?

来自分类Dev

流星语法有什么问题?

来自分类Dev

这个Bison语法有什么问题?

来自分类Dev

这里的PHP语法有什么问题?

来自分类Dev

此javascript语法有什么问题

来自分类Dev

我的语法有什么问题

来自分类Dev

这个 for Loop 语法有什么问题?

来自分类Dev

这个 ANTLR 语法有什么问题?

来自分类Dev

该addArrangedSubview代码有什么问题?

来自分类Dev

方案:该代码有什么问题?

来自分类Dev

该控制文件有什么问题?

来自分类Dev

该addArrangedSubview代码有什么问题?

来自分类Dev

该查询有什么问题?

来自分类Dev

我的SQL / PHP语法在这里有什么问题?

来自分类Dev

#1064-您的SQL语法有错误:此查询出了什么问题?

来自分类Dev

收到“您的SQL语法有错误”错误。此查询出了什么问题?

来自分类Dev

我的SQL代码有什么问题?

来自分类Dev

此SQL查询有什么问题

来自分类Dev

我的SQL查询有什么问题?

来自分类Dev

此SQL IF语句有什么问题?

来自分类Dev

我的SQL查询有什么问题?