Quand il s'agit de développer le prototype d'une solution, souvent les technologies n'ont pas encore été décidées et peuvent ne pas être les mêmes que celles qui seront utilisées dans le produit fini.
Dans ces scénarios, j'ai tendance à utiliser Microsoft SQL Server pour écrire les requêtes aussi standard que possible pour simplifier la migration éventuelle vers un autre serveur.
Existe-t-il un moyen ou une pratique connue d'imposer l'utilisation du dialecte SQL standard sur T-SQL directement dans SQL Server ou via SQL Server Management Studio (SSMS)?
<>
) et non standard (!=
), où il n'y a aucun compromis sur les performances ou la maintenabilité, je choisis toujours standard. Mais quand cela vient à d'autres coûts, ou qu'il n'y a pas d'équivalent standard, je tape et je suis propriétaire. Les choses que vous abandonnez juste pour la possibilité de changer complètement de plate-forme en gros ne valent tout simplement pas la peine à mon humble avis.Réponses:
L'utilisateur Aaron Bertrand a fait quelques commentaires qui correspondent bien à mes réflexions sur votre question. Il s'agit plus d'un défi de cadre que d'une réponse à votre question spécifique, mais je pense qu'il est utile de considérer dans ce contexte.
Si vous devez changer de plate-forme à un moment donné, des modifications devront être apportées à l'application, à la base de données et probablement à bien d'autres choses. Si vous pouvez être quelque peu «agnostique à la plate-forme» sans trop d'effort, c'est bien. Mais c'est vraiment une mauvaise décision commerciale de l'utiliser comme objectif de conception.
Il existe de nombreux endroits en ligne où les gens discutent des inconvénients ou de la programmation de cette façon, voici l'un d'eux que je trouve assez convaincant:
Les couches d'abstraction de base de données doivent mourir!
la source
N'appliquez pas STD SQL.
Décidez d'abord quel SGBD vous utiliserez en fonction des besoins de votre projet, et profitez-en.
la source
Pas vraiment.
Il y en a
SET FIPS_FLAGGER 'FULL'
.Cela affiche un avertissement pour SQL non standard - mais certaines mises en garde sont
+
opérateur pour la concaténation de chaînes ou de fonctions propriétaires telles queGETDATE()
cela ne semble pas très complet.la source
"souvent les technologies n'ont pas encore été décidées"
Je dirais que ce n'est absolument pas le cas dans mon expérience. En fait, je ne pense pas en avoir entendu parler, sauf peut-être quelque chose de très petit.
Habituellement, cela est établi et la nouvelle solution devrait utiliser ce qui est déjà utilisé.
Je serais d'accord avec les commentateurs ci-dessus en ce que même si ce n'est pas établi, vous devez d'abord l'établir avant de commencer à écrire des requêtes et d'autres codes. Sinon, vous vous laissez potentiellement potentiellement dépenser beaucoup d'efforts en une réécriture dès le départ.
la source