J'ai une base de données SQL et des tables que je voudrais répliquer dans un autre serveur SQL. Je voudrais créer un script SQL qui crée la base de données et les tables dans un seul script.
Je peux créer un script "Créer" en utilisant SQL Management Studio pour chaque cas (base de données et tables), mais j'aimerais savoir si la combinaison des deux scripts "Créer" en un seul script suffirait.
Merci.
sql
sql-server
Tony
la source
la source
Réponses:
Dans SQL Server Management Studio, vous pouvez cliquer avec le bouton droit sur la base de données que vous souhaitez répliquer et sélectionner «Script Database as» pour que l'outil crée le fichier SQL approprié pour répliquer cette base de données sur un autre serveur. Vous pouvez répéter ce processus pour chaque table que vous souhaitez créer, puis fusionner les fichiers en un seul fichier SQL. N'oubliez pas d'ajouter une instruction using après avoir créé votre base de données mais avant toute création de table.
Dans les versions plus récentes de SQL Server, vous pouvez l'obtenir dans un fichier dans SSMS.
Cela lancera un assistant dans lequel vous pourrez créer un script pour la base de données entière ou seulement des portions. Il ne semble pas y avoir de moyen T-SQL de le faire.
la source
Bien que la réponse de Clayton vous y mènera (éventuellement), dans SQL2005 / 2008 / R2 / 2012, vous avez une option beaucoup plus simple:
Cliquez avec le bouton droit sur la base de données, sélectionnez
Tasks
, puisGenerate Scripts
, ce qui lancera l'assistant de script. Cela vous permet de générer un script unique qui peut recréer la base de données complète, y compris la table / les index et les contraintes / les procédures stockées / les fonctions / les utilisateurs / etc. Il existe une multitude d'options que vous pouvez configurer pour personnaliser la sortie, mais la plupart sont explicites.Si vous êtes satisfait des options par défaut, vous pouvez faire tout le travail en quelques secondes.
Si vous souhaitez recréer les données dans la base de données (en tant que série d'INSERTS), je vous recommande également SSMS Tools Pack (gratuit pour la version SQL 2008, payé pour la version SQL 2012).
la source
Une excellente explication peut être trouvée ici: Générer un script dans SQL Server Management Studio
Avec l'aimable autorisation d'Ali Issa Voici ce que vous devez faire:
Si vous souhaitez créer un script qui génère uniquement les tables (pas de données), vous pouvez ignorer la partie avancée des instructions!
la source
Je ne sais pas pourquoi SSMS ne prend pas en compte l'ordre d'exécution, mais ce n'est tout simplement pas le cas. Ce n'est pas un problème pour les petites bases de données, mais que faire si votre base de données contient 200 objets? Dans ce cas, l'ordre d'exécution importe car il n'est pas vraiment facile de passer en revue tout cela.
Pour les scripts non ordonnés générés par SSMS, vous pouvez suivre
a) Exécuter le script (certains objets seront insérés d'autres, il y aura des erreurs)
b) Supprimer tous les objets du script qui ont été ajoutés à la base de données
c) Revenez à a) jusqu'à ce que tout soit finalement exécuté
Une autre option consiste à utiliser un outil tiers tel que ApexSQL Script ou tout autre outil déjà mentionné dans ce fil (SSMS toolpack, Red Gate et autres).
Tous ces éléments prendront en charge les dépendances pour vous et vous feront gagner encore plus de temps.
la source
Oui, vous pouvez ajouter autant d'instructions SQL que vous le souhaitez dans un seul script. Juste une chose à noter: l'ordre compte. Vous ne pouvez pas INSÉRER dans une table tant que vous ne l'avez pas CRÉE; vous ne pouvez pas définir de clé étrangère tant que la clé primaire n'est pas insérée.
la source