SQL Server 2012를 실행 중이고 테이블 정의에서 IIF
을 사용하여 서버가 CASE WHEN
문으로 테이블 정의를 확인했습니다.테이블 정의의 IIF는 사례 변환
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
);
이는 물론이고 자식을 실행할 때 문제가 발생/schema diffs는이 두 테이블이 동일하지 않음을 나타냅니다.
CASE WHEN
에 대해 IIF
을 사용하는 것에 대한 "규칙"이 있습니까? 필자는 항상 전자가 플래그/간단한 논리 규칙을 만드는 데보다 간결하다는 것을 알았습니다.
그냥 '사례'를 사용하십시오. ANSI 표준입니다. –