Hace poco escribí accidentalmente un programa almacenado realmente feo en el que deseaba tener enums,¿Simular enumeraciones en TSQL?
Por ejemplo.
CREATE PROCEDURE Proc_search_with_enum @user int, @account_category {enum}
entiendo que SQL 2000 no tiene enumeraciones como primera construcción del lenguaje de clase, que convenciones de codificación que utiliza para simular las enumeraciones o de cualquier modo abordar el mismo tema?
¿O estoy destinado a usar VARCHAR e IF @ account_category = 'cat1'?
EDITAR: T-SQL y C# son los idiomas del cliente.
EDITAR: ¡Gracias a todos! Un montón de buenos consejos, me gustaría poder aceptar varias respuestas, he votado en todo el mundo UP
Resumen de las respuestas
- Lean on enumeración C# 's utilizando int. Bueno para el código de cliente C#, hace que el cliente TSQL código sea menos legible.
- Usar Char/Varchar. Malo para el código de cliente de C# (no es bueno para la localización), hace que código TSQL sea más legible.
- parámetro Use código de comprobación para restringir el parámetro, o utilizar una restricción en una columna de tabla o una clave externa si va a ser insertado en una tabla el parámetro.
Eche un vistazo a esta pregunta: http://stackoverflow.com/questions/681828/sqlserver-how-to-bind-fixed-values-to-column/681847 – LukeH