And*_*day 17 sql t-sql database
有一个暂存脚本,它创建新的DOCUMENT_DEFINITION_ID列,其值为MESSAGE_TYPE_ID + 5,然后删除列MESSAGE_TYPE_ID.
第一次一切运行正常,但是当我第二次运行脚本时,我收到此错误:
列名称"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
Run Code Online (Sandbox Code Playgroud)
为什么?
no_*_*one 22
试试这个
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
Run Code Online (Sandbox Code Playgroud)
它通过将更新包装在动态语句中来绕过延迟的名称解析.
归档时间: |
|
查看次数: |
6434 次 |
最近记录: |