SQL Server эквивалентен типу данных перечисления MySQL?

Имеет ли SQL Server 2008 такой тип данных, как MySQL enum?

Ответ 1

Это не так. Там неопределенный эквивалент:

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

Ответ 2

Лучшее решение, которое я нашел в этом, - создать таблицу поиска с возможными значениями в качестве первичного ключа и создать внешний ключ для таблицы поиска.

Ответ 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...

В тех случаях, когда важна производительность, все еще используйте жесткие значения.

Ответ 5

Нашел этот интересный подход, когда я хотел реализовать перечисления в SQL Server.

Подход, упомянутый ниже в ссылке, довольно убедителен, учитывая, что все ваши потребности в базе данных базы данных могут быть удовлетворены двумя центральными таблицами.

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