La table n'est supprimée et recréée que dans les cas où c'est la seule façon dont le Management Studio de SQL Server a été programmé pour savoir comment procéder.
Il y a certainement des cas où il le fera quand ce n'est pas nécessaire, mais il y aura aussi des cas où les modifications que vous ferez dans Management Studio seront no laisser tomber et recréer parce qu'il n'a pas à le faire.
Le problème est qu'il sera fastidieux d'énumérer tous les cas et de déterminer de quel côté de la ligne ils se situent.
C'est pourquoi j'aime utiliser ALTER TABLE
dans une fenêtre de requête, au lieu de concepteurs visuels qui cachent ce qu'ils font (et qui, franchement, présentent des bogues) - je sais exactement ce qui va se passer, et je peux me préparer à des cas où la seule possibilité est d'abandonner et de recréer la table (ce qui est un nombre inférieur à la fréquence à laquelle SSMS vous le fera).
Y a-t-il des effets négatifs / des inconvénients possibles à faire cela ?
Bien sûr. Si vous pouvez script le changement vous-même sans reconstruire la table entière, c'est mieux - considérez le cas où la table est 10TB, et la base de données est fortement enregistrée (pensez à AG sync, suivi des changements, réplication, triggers mal écrits), et la table est fortement accédée - c'est une recette potentielle pour le désastre. Si votre changement est quelque chose où vous pouvez appliquer un indice ONLINE ou ajouter une colonne et copier les données par lots au lieu du tout ou rien que l'interface graphique peut faire, c'est mieux.
La table est-elle réellement supprimée et recréée automatiquement lorsque cette case n'est pas cochée ?
Il pourrait . Il existe une longue liste de scénarios et le résultat dépend de la version de SSMS, de la version de SQL Server et parfois de l'édition. Vous pouvez vérifier en cochant la case et en essayant d'appliquer la modification. sur une copie insignifiante de la base de données d'abord mais l'utilisation de ALTER TABLE scripts au lieu de l'interface graphique est la meilleure solution.
Si oui, la copie de la table est-elle une réplique exacte à 100% de la table source ?
Oui, si SSMS doit reconstruire la table, elle sera une réplique exacte à 100% une fois que ce sera fait (sauf pour le changement bien sûr), mais cela pourrait être mercredi prochain. Le processus crée une nouvelle version de la table, y copie toutes les données, puis supprime l'ancienne table et renomme la nouvelle.
1 votes
Jetez également un coup d'œil à stackoverflow.com/questions/9870968/
2 votes
Et si vous êtes avec MS SQL Server 2014 -> Extras>Options>Designer à partir du menu supérieur.