[sql] MySQL 열거 형 데이터 유형에 해당하는 SQL Server?

SQL Server 2008에는 MySQL과 같은 데이터 형식이 enum있습니까?



답변

그렇지 않습니다. 모호한 내용이 있습니다.

mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))


답변

내가 찾은 가장 좋은 해결책은 가능한 값을 기본 키로 사용하는 조회 테이블을 만들고 조회 테이블에 외래 키를 만드는 것입니다.


답변

IMHO 조회 테이블은 참조 무결성을 갖춘 방법입니다. 그러나 다음과 같은 예제를 수행하여 “Evil Magic Numbers”를 피하는 경우에만 :
T4를 사용하여 데이터베이스 조회 테이블에서 열거 형 생성

즐기세요!


답변

CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
    RETURN 0
END

GO

CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
    RETURN 1
END

-- etc...

성능이 중요한 경우 여전히 어려운 값을 사용하십시오.


답변

SQL Server에서 열거 형을 구현하려고 할 때이 흥미로운 접근법을 찾았습니다.

아래 링크에서 언급 된 접근 방식은 모든 데이터베이스 열거 형 요구 사항이 2 개의 중앙 테이블로 충족 될 수 있다는 점을 고려하면 상당히 매력적입니다.

http://blog.sqlauthority.com/2010/03/22/sql-server-enumerations-in-relational-database-best-practice/


답변