J'ai besoin d'un simple redimension d'une colonne à partir de Si vous essayez d'utiliser SQL Server Enterprise Manager, le script qu'il génère crée efficacement une nouvelle table avec la nouvelle structure, insérant toutes les données de la table existante, laissant tomber la table existante, renommer la nouvelle table, et recréer des index. p>
Si vous lisez la documentation (et de nombreuses ressources en ligne, y compris), vous pouvez utiliser une instruction Est-ce que le varchar (36) code> à
varchar (40) code>. p>
alter code> pour le redimensionnement. p>
alter code> affecte la manière dont les données sont stockées de quelque manière que ce soit? Index? Statistiques? Je veux éviter les hits de performance en raison de cette modification en raison du fait que la table peut devenir grande. P>
4 Réponses :
non, Et si vous n'ajoutez pas d'options supplémentaires à votre commande, aucun index ni statistiques ne doit être blessé.
Une possibilité de perte de données n'est pas non plus donnée, car vous ne faites que rendre la colonne plus grande.
Tout devrait aller bien. P> alter Table code> ( http://msdn.microsoft.com/de-de/library/ms190273.commexe ) est la façon dont Microsoft avait l'intention de faire ce genre de changement. P>
Utilisez simplement l'alter Table. SSMS est un peu, er, stupide parfois p>
Vous devrez déposer et recréer les contraintes dépendantes (FK, unique, index, chèque, etc.) p>
Cependant, il s'agit uniquement d'une modification de métadonnées et sera très rapide pour n'importe quelle table (sauf si vous ne changez pas non plus NULL à NULL ou à VARCHAR à NVARCHAR ou telle) P>
Cela ne va-t-il pas déplacer le champ jusqu'à la fin des rangées sur les pages? Je pensais que cela pourrait créer des pointeurs et des scissions de page.
@Jnk: nah. Aucun mouvement de données ne se passera car aucune n'est nécessaire
@Jnk C'est exactement pourquoi je posais la question, mais cela semble comme si ce n'est pas vrai.
@gbn est bien sûr correct. Avec la longueur variable, c'est son méta change, avec char code> il aurait d'autres effets.
@gbn, félicitations pour atteindre 100k.
Les modifications apportées à la structure de la base de données ne doivent jamais être faites à l'aide d'un environnement SSMS sur un environnement de péril que vous avez soulevé. Il peut détruire des performances dans une grande table. Alter Table est la méthode préférée, elle est plus rapide et elle peut être stockée dans le contrôle de la source comme une modification pour pousser à pousser après le test. p>
Vous pouvez utiliser SSMS vers Exécuter le script SQL DDL i> - Ne pouvez-vous pas? :-)
Oui. J'ai fait la phase qui ne va pas, vous ne devriez pas utiliser l'interface graphique pour le faire.
Suite devrait être le meilleur moyen de gérer ce