SQL服务器等同于MySQL的枚举数据类型?(SQL Server equivalent to My

2019-07-18 06:30发布

是否SQL Server 2008中具有AA数据类型,如MySQL的enum

Answer 1:

事实并非如此。 有一个模糊等价的:

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


Answer 2:

我在此找到了最好的解决方案是创建一个查找表的可能值作为主键,并创建一个外键查找表。



Answer 3:

恕我直言,查找表是去,与参照完整性的方式。 但是,只有当你避免“邪恶的幻数”按照这样一个例子,因为这一个: 从使用数据库查询表T4产生枚举

玩得开心!



Answer 4:

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

GO

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

-- etc...

对于性能问题,仍然使用硬值。



Answer 5:

当发现我想要实现在SQL Server枚举这个有趣的方法。

在下面的链接中提到的做法是相当引人注目的,考虑到所有数据库枚举需求可以用2个中央表来满足。

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



文章来源: SQL Server equivalent to MySQL enum data type?