0
我正在運行SQL Server 2012,並通過在表定義中使用IIF
找到該服務器,然後將該表定義爲CASE WHEN
語句。表中的IIF解析爲CASE WHEN
T_TABLE.sql
CREATE TABLE [dbo].[T_TABLE] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[FLG] AS (IIF ([COL1] = [COL2] AND [STATUS] <> 'FAIL', 1, 0)),
[COL1] INT NULL,
[COL2] INT NULL,
[STATUS] VARCHAR (2000) NULL
);
在我使用SSMS腳本表定義並得到數據庫運行此代碼後,以下:
CREATE TABLE [dbo].[T_TABLE] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[FLG] AS (case when [COL1]=[COL2] AND [STATUS]<>'FAIL' then (1) else (0) end),
[COL1] INT NULL,
[COL2] INT NULL,
[STATUS] VARCHAR (2000) NULL
);
當然,這是運行git時導致問題/ schema不同意說這兩個表不相等。
是否有一個「規則」反對使用IIF
而不是CASE WHEN
?我總是發現前者更容易創建標誌/簡單邏輯規則。
只要使用'CASE'。這是ANSI標準。 –