Cuando se trata de desarrollar el prototipo de una solución, a menudo las tecnologías aún no se han decidido y podrían no ser las mismas que se utilizarán en el producto terminado.
En estos escenarios, tiendo a usar Microsoft SQL Server escribiendo las consultas de la manera más estándar posible para simplificar la migración eventual a otro servidor.
¿Existe alguna forma o práctica conocida para imponer el uso del SQL estándar sobre el dialecto T-SQL directamente en SQL Server o mediante SQL Server Management Studio (SSMS)?
sql-server
sql-server-2016
migration
sql-standard
s.demuro
fuente
fuente
<>
) y no estándar (!=
), donde no hay compromiso en el rendimiento o la mantenibilidad, siempre elijo estándar. Pero cuando se trata de otros costos, o no hay un equivalente estándar, aprovecho y me dedico. Las cosas que abandonas solo por la posibilidad de cambiar por completo las plataformas al por mayor simplemente no valen la pena.Respuestas:
El usuario Aaron Bertrand hizo algunos comentarios que se alinean bien con mis pensamientos sobre su pregunta. Esto es más un desafío de marco que una respuesta a su pregunta específica, pero creo que es valioso considerarlo en este contexto.
Si tiene que cambiar las plataformas en algún momento, no habrá cambios necesarios para la aplicación, la base de datos, y probablemente muchas otras cosas. Si puede ser algo "agnóstico de plataforma" sin demasiado esfuerzo, está bien. Pero es realmente una mala decisión comercial usar eso como un objetivo de diseño.
Hay muchos lugares en línea donde la gente discute las desventajas o la programación de esta manera, aquí hay uno de ellos que me parece bastante convincente:
¡Las capas de abstracción de bases de datos deben morir!
fuente
No imponga STD SQL.
Primero decida qué DBMS utilizará de acuerdo con las necesidades de su proyecto, y aprovéchelo.
fuente
Realmente no.
Existe
SET FIPS_FLAGGER 'FULL'
.Esto imprime una advertencia para SQL no estándar, pero algunas advertencias son
+
operador para la concatenación de cadenas o funciones propietarias,GETDATE()
por lo que no parece muy completo.fuente
"a menudo las tecnologías aún no se han decidido"
Yo diría que este NO es el caso en mi experiencia. De hecho, no creo haber oído hablar de esto, excepto por algo muy pequeño.
Por lo general, esto se establece y se espera que la nueva solución utilice lo que ya está en uso.
Estoy de acuerdo con los comentaristas anteriores en que, incluso si no está establecido, debe establecerlo primero antes de comenzar a escribir consultas y otro código. De lo contrario, simplemente te estás permitiendo un gran esfuerzo desperdiciado en una reescritura desde el principio.
fuente