Jawaban:
Tidak. Ada padanan yang tidak jelas:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
Solusi terbaik yang saya temukan dalam hal ini adalah membuat tabel pencarian dengan nilai yang mungkin sebagai kunci utama, dan membuat kunci asing ke tabel pencarian.
Tabel pencarian IMHO adalah cara untuk pergi, dengan integritas referensial. Tetapi hanya jika Anda menghindari "Angka Sihir Jahat" dengan mengikuti contoh seperti ini: Hasilkan enum dari tabel pencarian basis data menggunakan T4
Selamat bersenang-senang!
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Di mana kinerja penting, masih menggunakan nilai keras.
Menemukan pendekatan yang menarik ini ketika saya ingin mengimplementasikan enums di SQL Server.
Pendekatan yang disebutkan di bawah dalam tautan ini cukup menarik, mengingat semua kebutuhan enum basis data Anda dapat dipenuhi dengan 2 tabel pusat.