我被告知要对我们的数据库架构进行一些更改,所以我编写了以下脚本来执行以下操作:
- 更新表的值,根据另一个表的值
- 删除包含指向另一个表的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
有任何想法吗?