SQL Server equivalent to MySQL enum data type?

前端 未结 5 815
傲寒
傲寒 2020-11-28 04:29

Does SQL Server 2008 have a a data-type like MySQL\'s enum?

相关标签:
5条回答
  • 2020-11-28 04:55

    IMHO Lookup tables is the way to go, with referential integrity. But only if you avoid "Evil Magic Numbers" by following an example such as this one: Generate enum from a database lookup table using T4

    Have Fun!

    0 讨论(0)
  • 2020-11-28 04:56
    CREATE FUNCTION ActionState_Preassigned()
    RETURNS tinyint
    AS
    BEGIN
        RETURN 0
    END
    
    GO
    
    CREATE FUNCTION ActionState_Unassigned()
    RETURNS tinyint
    AS
    BEGIN
        RETURN 1
    END
    
    -- etc...
    

    Where performance matters, still use the hard values.

    0 讨论(0)
  • 2020-11-28 05:02

    The best solution I've found in this is to create a lookup table with the possible values as a primary key, and create a foreign key to the lookup table.

    0 讨论(0)
  • 2020-11-28 05:12

    It doesn't. There's a vague equivalent:

    mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
    
    0 讨论(0)
  • 2020-11-28 05:16

    Found this interesting approach when I wanted to implement enums in SQL Server.

    The approach mentioned below in the link is quite compelling, considering all your database enum needs could be satisfied with 2 central tables.

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

    0 讨论(0)
提交回复
热议问题