¿SQL Server 2008 tiene un tipo de datos como MySQL's enum
?SQL Server equivalente al tipo de datos enum de MySQL?
Respuesta
No es así. Hay un equivalente vaga:
mycol VARCHAR(10) NOT NULL CHECK (mycol IN('Useful', 'Useless', 'Unknown'))
CREATE FUNCTION ActionState_Preassigned()
RETURNS tinyint
AS
BEGIN
RETURN 0
END
GO
CREATE FUNCTION ActionState_Unassigned()
RETURNS tinyint
AS
BEGIN
RETURN 1
END
-- etc...
Cuando los asuntos de rendimiento, siguen utilizando los valores duros.
La mejor solución que he encontrado en esto es crear una tabla de búsqueda con los valores posibles como clave principal y crear una clave externa para la tabla de búsqueda.
Mesas de búsqueda de IMHO es el camino a seguir, con integridad referencial. Pero sólo si se evita el mal "números mágicos" siguiendo un ejemplo como este: Generate enum from a database lookup table using T4
divertirse!
Encontré este interesante enfoque cuando quería implementar enumeraciones en SQL Server.
El enfoque que se menciona a continuación en el enlace es bastante convincente, teniendo en cuenta que todas las necesidades de la base de datos se pueden satisfacer con 2 tablas centrales.
Esta es una variación del anti-patrón conocido como "one true" (tabla de búsqueda". El enfoque adecuado es tener una tabla separada para cada tipo de enumeración y usar claves externas (si necesita buscar en absoluto, lo que puede no ser el caso para las enumeraciones "puras"). –
Los comentarios en la página vinculada proporcionan una buena copia de seguridad para usar tablas individuales para cada "enumeración", en lugar de lo que esta respuesta especifica –
Es bastante gracioso cómo la mayoría de las personas se opondrían a este diseño, pero el autor llama su artículo "Buenas prácticas" . –
- 1. ¿SQL Server 2005 tiene un equivalente al tipo de datos ENUM de MySql?
- 2. SQL Server equivalente a EXPLAIN de MySQL
- 3. SQL Server Hexadecimal tipo de datos
- 4. SQL Server OFFSET equivalente
- 5. uniqueidentifier Tipo de datos equivalente en C#
- 6. ¿Cuál es el tipo de datos equivalente de Numérico de SQL Server en C#
- 7. Tipo de datos sql para clave principal - SQL Server?
- 8. Hashset equivalente en SQL Server
- 9. Equivalente al RowID de Oracle en SQL Server
- 10. MySQL REGEXP to SQL Server
- 11. ¿Cuál es la migración de Rails equivalente al tipo de datos 'doble' de MySQL?
- 12. SQL Server identificador único equivalente en C#
- 13. SQL Server: cualquier equivalente de strpos()?
- 14. Cómo exportar datos de SQL Server 2005 a MySQL
- 15. Equivalente de Debug.Assert para SQL Server
- 16. ¿Cuál es el equivalente de SQL Server de INET_ATON
- 17. Transferencia de datos de SQL Server a MySQL
- 18. Trabajando con el tipo de datos XML de SQL Server
- 19. El tipo de datos decimales de MS SQL Server redondea
- 20. cláusula WHERE de SQL Server "texto" tipo de datos
- 21. ¿equivalente StyleCop para SQL Server?
- 22. ¿Qué es el equivalente de PostgreSQL a SQL Server NVARCHAR?
- 23. SQL-Server y MySQL interoperabilidad?
- 24. tipo de datos enum para liquibase
- 25. SQL Server Tipo de datos XML y QUOTED_IDENTIFIER
- 26. Tipo de datos XML En SQL Server 2008 Query
- 27. podemos tener datos de tipo matriz en SQL Server 2008
- 28. ¿qué es equivalente al tipo de datos largos en postgresql?
- 29. MySQL para la migración de SQL Server
- 30. Conversión de Microsoft SQL Server a MySQL
cómo hacerlo en SSMS? – EgoPingvina
@EgoPingvina: Deberías preguntar esto en una pregunta, no en un comentario. – chaos