gpt4 book ai didi

当我验证它是否存在时,SQL 错误指出无效的列名。为什么?

转载 作者:太空狗 更新时间:2023-10-30 01:41:00 24 4
gpt4 key购买 nike

有暂存脚本,它创建新列 DOCUMENT_DEFINITION_ID 并将其值 MESSAGE_TYPE_ID + 5 暂存,然后删除列 MESSAGE_TYPE_ID。

第一次运行一切正常,但是当我第二次运行脚本时,出现了这个错误:

Invalid column name 'MESSAGE_TYPE_ID'.

这没有意义,因为我已验证该列是否存在。

IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'MESSAGE_TYPE_ID' AND TABLE_NAME = 'DOCUMENT_QUEUE')
BEGIN
UPDATE DOCUMENT_QUEUE SET DOCUMENT_DEFINITION_ID = MESSAGE_TYPE_ID + 5 --Error here.. but condition is not met

为什么?

最佳答案

试试这个

IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'MESSAGE_TYPE_ID' AND TABLE_NAME = 'DOCUMENT_QUEUE')
BEGIN
EXEC( 'UPDATE DOCUMENT_QUEUE SET DOCUMENT_DEFINITION_ID = MESSAGE_TYPE_ID + 5 ')
END

它通过将更新包装在动态语句中来绕过延迟的名称解析。

关于当我验证它是否存在时,SQL 错误指出无效的列名。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3905910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com