有人告诉我做一些改变我们的数据库的模式,所以我写了下面的脚本,执行以下操作:该SQL语法有什么问题?
- 更新表的值,根据其它表的价值
- 删除包含指向其他表
整个脚本应该只有当课程
这里存在id_to_other_table执行的ID列是我的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,代码被正确执行。当我运行它一次,而不是什么都不做,它给了我下面的错误,JOIN
的ON
部分后指着行:
Invalid column name 'my_table.title_id'
如果我更换的BEGIN
内容 - END
与print "Does the column exists?"
块它正确显示什么都没有,所以BEGIN
- END
块由于某种原因抢先结束...
任何想法?
你怎么能放弃它后'title_id'加入? – bansi
它不应该加入它,如果它不存在,但它尝试。这是问题的关键 – Loupax