Проверка выражения SQL для столбца Data_Type

#tsql

#tsql

Вопрос:

Я написал IF инструкцию, показанную ниже, для проверки столбца Data_Type , а затем выполнил некоторую логику. К сожалению, я IF пропускаю случай, когда это true .

 IF N'int' in (
    SELECT DATA_TYPE 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE 
    TABLE_NAME = 'TempTable' AND 
    COLUMN_NAME = 'Id')
    BEGIN
        ALTER TABLE TempTable ADD PRIMARY KEY (Id);
    END
ELSE
    BEGIN
        ALTER TABLE TempTable ADD Idd int NOT NULL
        ALTER TABLE TempTable ADD PRIMARY KEY (Idd)
    END;
  

Я запустил этот запрос в другом окне:

 SELECT DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE 
TABLE_NAME = 'TempTable' AND 
COLUMN_NAME = 'Id'
  

он вернул меня 'int' . Почему тогда оно сразу переходит к 'ELSE' утверждению, даже если оно истинно?

Комментарии:

1. Вы запускаете первый скрипт в базе данных, где находится таблица? INFORMATION_SCHEMA.COLUMNS применяется к текущей базе данных.

2. Он начал работать после того, как я перезапустил SSMS. Понятия не имею, в чем проблема.