Des Scripts T-SQL pour copier toutes les contraintes de table
J'ai créé de nombreuses tables de ma base de données locale, et les ont mis à la base de données de production.
Maintenant, je suis en train de peaufiner le réglage de la base de données et créé de nombreuses contraintes sur ma région, tables de base de données tels que PK, FK, les Valeurs par Défaut, les Index, etc. etc.
Maintenant, je voudrais seulement la copie de ces contraintes à la production de la base de données. Est-il un moyen de le faire?
Veuillez noter que ma production de tables de base de données déjà rempli avec des données. Donc je ne peux pas supprimer et recréer.
OriginalL'auteur user179181 | 2009-10-05
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas acheter tous les outils (qui sont totalement vaut le prix, BTW), vous pouvez toujours interroger les vues du catalogue système, et d'en extraire les informations à partir de là, créer des scripts que vous pouvez exécuter sur votre nouvelle base de données.
Dans le cas de, par exemple, les contraintes par défaut, cette requête affiche la liste de toutes les contraintes par défaut dans votre base de données:
et sur cette base, vous pouvez bien sûr créer une requête qui émettraient, T-SQL pour recréer ces contraintes par défaut sur votre serveur cible:
Vous obtiendrez quelque chose comme ceci (pour la
AdventureWorks
échantillon DB):Bien sûr, vous pouvez ajuster la résultante de T-SQL de sortie à votre goût - mais, fondamentalement, copie&coller les résultats de la requête à votre nouvelle base de données, et vous partez.
Bien sûr, il existe des vues du catalogue système de relations de clé étrangère (sys.foreign_keys), les contraintes de vérification (sys.check_constraints), index (sys.les index et les sys.index_columns) et beaucoup plus.
C'est un peu de travail, mais il peut être fait sur votre propre temps, et vous apprendrez beaucoup de choses sur SQL Server dans le processus.
Donc c'est un traditionnel "faire ou acheter" la décision de tout recommencer 🙂
Marc
OriginalL'auteur marc_s
La meilleure façon serait de stocker tous vos DDL code de contrôle à la source. Ensuite déployer à la production en utilisant des outils comme dbGhost (mon préféré) ou SQL de Comparer
Une autre option que j'ai utilisé pendant une longue période de temps est AdeptSQL Diff. Pas libre, mais il ne le schéma et la comparaison de ces données, est très rapide, et permet de générer des scripts de mise à jour ET de les EXÉCUTER directement à partir de l'application. L'obtention de vos scripts sous contrôle de version est également important cependant.
OriginalL'auteur van
Red Gate SQL de Comparer est populaire, non-libre de le faire.
OriginalL'auteur RedFilter
Sûr que c'est un vieux post, mais aucun des scripts dans toutes les réponses ci-dessus, mettre les schémas de table. Donc ça n'a pas fonctionner pour ma base de données.
Ce qu'on fait, de sorte qu'il n':
J'ai adapté à partir de Donabel Santos blog ici.
MODIFIER et NB: assurez-vous d'exécuter les deux parties de la requête et enregistrez le deuxième ensemble de résultats (c'est à dire
ADD CONSTRAINT
s) avant de renoncer à vos contraintes par défaut, sinon vous ne serez pas en mesure de re-créer de nouveau (non, je n'ai pas à le faire 🙂OriginalL'auteur DaveBoltman
Une bonne et gratuit outil de Microsoft. Vous pouvez exporter le schéma et les données.
Microsoft SQL Server Base de données de l'Assistant de Publication
OriginalL'auteur Rodrigo
Essayer DBSourceTools. http://dbsourcetools.codeplex.com
Il a schéma de la fonction de comparaison pour vous aider à créer un script de mise à jour.
Gardez à l'esprit cependant, que vous devriez être en utilisant le contrôle de code source sur l'ensemble de votre base de données.
C'est ce que DBSourceTools a été conçu pour faire - aider les développeurs à porter leurs bases de données sous contrôle de code source.
OriginalL'auteur blorkfish