Недавно я случайно написал действительно уродливый хранимый фрагмент, где мне хотелось, чтобы у меня были перечисления,
Eg.
CREATE PROCEDURE Proc_search_with_enum @user int, @account_category {enum}
Я понимаю, что SQL 2000 не имеет перечислений как конструкцию языка первого класса, какие соглашения кодирования вы используете для имитации перечислений или иным образом адресуете ту же проблему?
Или я обречен просто использовать VARCHAR и IF @account_category = 'cat1'?
EDIT: T-SQL и С# являются языками клиента.
EDIT: Спасибо всем! Много хорошего совета, я бы хотел принять несколько ответов, я проголосовал за всех -
Сводка ответов
- Lean on С# enum с помощью int. Хорошо для кода клиента С#, делает клиент TSQL код менее читабельный.
- Используйте Char/Varchar. Плохо для кода клиента С# (не подходит для локализации), делает Код TSQL более читабельный.
- Использовать код проверки параметров для ограничения параметр или использовать ограничение на столбец таблицы или внешний ключ, если параметр будет вставлен в таблицу.