Как определить ПЕРЕЧИСЛЕНИЕ в SQL Server 2005? [дубликат]

5
задан Community 23 May 2017 в 11:52
поделиться

3 ответа

Использовать один или несколько скалярных UDF?

Один на константу:

  • dbo.CONST_Bicycle возвращает 1
  • dbo.CONST_Car возвращает 2

Один на перечисление:

  • dbo .CONST_Types ('Bicycle') возвращает 1
  • dbo.CONST_Types ('Car') возвращает 2

Или используйте таблицу с ID, Name per enum

Используйте перечисление на стороне клиента, чтобы сопоставьте это (возможно, с проверкой решения таблицы)

Существует нет быстрого или чистого способа сделать это, как в .net (согласно вашему комментарию).

5
ответ дан 14 December 2019 в 13:28
поделиться

SQL Server поддерживает определяемые пользователем типы данных. Возможно, вы захотите сделать что-то с CREATE TYPE (Transact-SQL). Но я не знаю, даже возможно ли это через пользовательские типы данных и не знаю о его плюсах и минусах. Может быть, кто-то другой пролит на это больше света.

0
ответ дан 14 December 2019 в 13:28
поделиться

Возможно, вы захотите иметь таблицу поиска LuVehicle со столбцами Id и Name.

Значения могут выглядеть как

1,Bicycle
2,Car
3,MotorCycle

Тогда вы можете иметь внешний ключ столбца Id в любом месте таблицы базы данных.

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

select empname, vehicleId, LuVehicle.Name from employees, LuVehicle 
where employees.vehicleId = LuVehicle.Id
1
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: