12
votes

Forcer le studio de gestion pour utiliser Alter Table au lieu de goutte / création

Je me demande si vous y êtes un moyen de forcer Studio MSSQL Management Studio à produire un script comme celui-ci:

ALTER TABLE Mytable
ADD MyCol bit NOT NULL
CONSTRAINT MyColDefault
DEFAULT 0 WITH VALUES


ALTER TABLE [dbo].Mytable
ALTER COLUMN MyCol2 int NULL

GO 


1 commentaires

Vous avez toujours trouvé un moyen de faire ce Marco?


4 Réponses :


5
votes

Vous ne pouvez pas changer le comportement, c'est juste que le script par défaut qu'il crée n'est pas toujours le plus efficace. Il crée des scripts dans un format informatique savoir fonctionnera, bien que souvent les résultats soient lents et lourds. Je vous recommande de vous aider à créer le script pour tous les changements vous-même, car vous pouvez mieux l'optimiser. Il n'y a rien de mal à ce que vous avez créé (vous n'avez pas de contraintes / dépendances existantes sur Mycol2 qui serait invalidée par la nullable int)


0 commentaires

9
votes

Oui, vous pouvez!

Dans SQL Server Management Studio, entrez dans le mode de conception de la table pour la table en question et apportez vos modifications. Toutefois: do pas cliquez sur le bouton "Enregistrer", mais cliquez plutôt avec le bouton droit de la souris sur la vue de la conception de la table, il devrait y avoir un élément "Generate Change Script" à la fin de votre menu contexteur.

 text alt

Cliquez sur cet élément de menu et vous aurez présenté une boîte de dialogue contextuelle contenant le script T-SQL nécessaire pour effectuer ces modifications apportées à la table dans le concepteur. Copier ou enregistrer ce code T-SQL et annuler hors du concepteur, et voici - vous avez votre script de changement!

Mise à jour: Marco, désolé, je ne pense pas qu'il y ait une option pour modifier le comportement par défaut, du moins pas en ce moment. Vous voudrez peut-être déposer une demande d'amélioration avec Microsoft sur Microsoft Connect pour proposer cette bonne idée, je penserais!


1 commentaires

Salut Marc, je suis désolé peut-être que je ne me suis pas fait clair. Je le sais, et c'est la façon dont je connais que SQLMS fait les choses de cette façon. J'aurais aimé savoir s'il y a un moyen de modifier son comportement par défaut. Ce que vous suggérez est utile d'utiliser le script plus tard, et c'est en fait ce que je veux faire. Dommage que le script généré ici est lourde et non efficace de ressources dans une situation habituelle, à mon humble avis. au revoir!



-1
votes

facile! juste aller à outil -> option , puis le noeud noeud et sélectionnez concepteur de table et de base de données afin que vous puissiez Décochez la case Empêcher les modifications qui nécessitent ... Case à cocher.

MAINTENANT, vous pouvez faire de tout changement sur la conception de vos tables!


1 commentaires

Cela vous donnera une erreur au lieu de sauver vos modifications - il ne fera que l'utilisateur de la concepteur Alter Table.



1
votes

Juste pour augmenter @ la réponse de Marc_s. Si vous ne pouvez toujours pas générer le script de modification, car votre table doit être recréée, vous devez accéder à Outils -> Options et sous Designers -> Designers de table et de base de données Sanemark the Option empêche d'enregistrer des modifications nécessitant une nouvelle création de table .

 Entrez la description de l'image ici


0 commentaires