我编写了如下所示的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'
声明呢?