Pourquoi SQL Server déconseille-t-il SET ANSI_PADDING OFF?
-
06-07-2019 - |
Question
Selon MSDN BOL (documentation en ligne) sur SET ANSI_PADDING
,
Dans une version ultérieure de Microsoft SQL Server, ANSI_PADDING sera toujours activé et toute application définissant explicitement l'option sur OFF générera une erreur. Évitez d’utiliser cette fonctionnalité dans les nouveaux travaux de développement et envisagez de modifier les applications qui l’utilisent actuellement.
Je n'ai jamais utilisé cette option, mais il semble qu'elle puisse réellement économiser beaucoup d'espaces de base de données pour les champs char
et varbinary
si elle est utilisée correctement.
Pourquoi SET ANSI_PADDING
devient-il obsolète, si ce n'est qu'il n'est pas conforme à la norme ANSI?
Existe-t-il de bonnes raisons?
La solution
Pas une réponse, juste un avis:
Personnellement, j'aimerais croire qu'ils l'enlèvent parce que c'est une douleur nulle dans le néant. Si un objet de base de données est créé, utilisé, référencé ou quoi que ce soit avec ON, un second est fait avec OFF, et vous essayez de travailler avec les deux en même temps (deux tables, table de référence de procédure, etc.), vos résultats peuvent être incohérents ou ne pas avoir de sens, et il vous faudra Forever pour comprendre ce qui se passe.
(Il existe d'autres paramètres SET comme celui-ci, et pire encore. J'espère qu'ils les déprécieront tous.)
Autres conseils
Cette fonctionnalité n’a pas du tout été utilisée et elle n’est pas non plus conforme à la norme ANSI; elle sera donc supprimée. L’économie d’espace peut être réalisée indépendamment de ansi_padding, le serveur SQL peut supprimer le remplissage en interne.