Ошибка SQL с указанием недопустимого имени столбца, когда у меня есть проверка, существует ли он. Почему?

Есть промежуточный скрипт, который создает новый столбец 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

Почему?

17
задан Andriy Buday 11 October 2010 в 11:52
поделиться