Les outils / options sql empêchent d'save les modifications

Quels sont les effets secondaires possibles lors de l'utilisation de l'option "Empêcher les modifications qui nécessitent une table-recréation". Plus précisément, il suffit d'append un nouveau champ à la table.

Merci,

barre.

Vous parlez de SSMS. Par défaut, vous ne pouvez pas save les modifications de schéma qui impliquent une recréation de table. Chaque fois que j'installe SSMS, j'éteins immédiatement cette option.

Certaines modifications de schéma nécessitent la création d'une table temporaire, la copy des données de la table d'origine, la création d'une nouvelle table avec le nouveau schéma, puis la copy des données de la table temporaire dans la nouvelle table. La table temporaire est ensuite supprimée. Lorsque cette option est sélectionnée, toute modification de schéma nécessitant ce process n'est pas autorisée dans SSMS.

IMO, il n'y a aucun inconvénient à éteindre ceci, tant que vous êtes conscient que certains changements de schéma exigent ceci, et, avec une table avec un grand nombre de lignes, l'opération pourrait prendre beaucoup de time.

Il suffit d'append une nouvelle colonne à une table, à condition de pouvoir accepter que la nouvelle colonne apparaisse à la fin de la table.

C'est quand les gens veulent placer la nouvelle colonne dans un endroit particulier dans la list des colonnes que les problèmes se produisent, parce qu'il n'y a pas de telle command réelle pour permettre cela en SQL; Ainsi, SSMS doit simuler cela en créant une nouvelle table, en copiant datatables, en supprimant l'ancienne table et en renommant la nouvelle. Toutes ces étapes prennent du time, au cours de laquelle il est dangereux pour quiconque d'essayer d'accéder à cette table.

Damien a raison, append une colonne ne cause aucun effet secondaire. Cela peut facilement être fait en utilisant T-SQL, car c'est l'une des actions qui est faite sans re-créer une table lors de l'utilisation de T-SQL. Les autres actions sont:

  • Modification du paramètre NULL d'une colonne existante
  • Utiliser RESEED pour une colonne
  • Changer le type de données d'une colonne existante