SQL表达式检查列Data_Type

时间:2019-04-23 12:06:39

标签: tsql

我编写了如下所示的IF语句,以检查列的Data_Type,然后执行一些逻辑。可悲的是,我的IFtrue时跳过大小写。

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'声明呢?

0 个答案:

没有答案