Câu trả lời:
Nó không. Có một tương đương mơ hồ:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
Giải pháp tốt nhất tôi tìm thấy trong việc này là tạo bảng tra cứu với các giá trị có thể làm khóa chính và tạo khóa ngoại cho bảng tra cứu.
Bảng tra cứu IMHO là cách để đi, với tính toàn vẹn tham chiếu. Nhưng chỉ khi bạn tránh "Evil Magic Numbers" bằng cách làm theo một ví dụ như ví dụ này: Tạo enum từ bảng tra cứu cơ sở dữ liệu bằng T4
Chúc vui vẻ!
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Trường hợp hiệu suất quan trọng, vẫn sử dụng các giá trị cứng.
Tìm thấy cách tiếp cận thú vị này khi tôi muốn triển khai enum trong SQL Server.
Cách tiếp cận được đề cập dưới đây trong liên kết khá hấp dẫn, xem xét tất cả các nhu cầu enum cơ sở dữ liệu của bạn có thể được thỏa mãn với 2 bảng trung tâm.