Mon produit utilise une base de données SQL Server - chaque client possède sa propre instance déployée sur son propre intranet. Le db a environ 200 tables. La plupart d'entre elles sont des tables de configuration qui ont seulement quelques lignes, mais il y a quelques tables de données de transaction qui peuvent avoir plusieurs millions de lignes. Souvent, j'ai besoin de résoudre le problème de configuration d'un client, j'ai donc besoin d'une copie de base de données pour travailler localement avec mon système de développement ... Cependant, il peut être très important en raison des données de transaction. moi une sauvegarde pour travailler avec. J'ai besoin d'un moyen de sauvegarder/copier/exporter tout sauf pour les grandes tables.Comment copier un schéma et certaines données de SQL Server vers une autre instance?
Idéalement, les grandes tables appartiennent vraiment à un catalogue de base de données distinct, de sorte qu'un client peut sauvegarder ses «données» séparément de leur «configuration». Cependant, je n'ai pas le pouvoir de faire ce genre de changement, donc je cherche un bon moyen d'exporter ou de copier uniquement les parties de configuration sans avoir à copier le tout.
Actuellement, j'ai une application .NET rapide et sale qui utilise un adaptateur SQL et DataSet pour sélectionner aveuglément * de tous les tableaux sauf ceux que je veux omettre, vider dans un fichier XML (c'est l'exportation de mon pauvre-homme fonctionnalité). Et j'ai une application compagnon que je peux utiliser localement pour charger le XML dans un DataSet et ensuite utiliser SQLBulkCopy pour le charger dans ma base de données dev. J'ai dû faire quelques trucs pour désactiver les contraintes et ainsi de suite, mais je l'ai fait fonctionner. Cela me donne les données, mais pas le schéma ... idéalement, je voudrais un moyen d'obtenir le schéma avec lui. C'est une approche de force brute, et je crois qu'il doit y avoir un moyen plus simple. Des suggestions pour une meilleure approche?
La solution doit être automatisée étant donné que j'ai affaire à des utilisateurs finaux qui ont généralement très peu de support informatique.
(SQL 2005 et plus)
Merci pour la réponse. Je vais regarder dans l'automatisation des scripts. Aussi, je l'ai essayé manuellement et j'ai des problèmes avec l'ordre des opérations (par exemple, il essaie de créer une vue avant que la table sous-jacente ait été créée) ... semble ne pas suivre l'ordre des dépendances. Je vais creuser et voir ce que je peux trouver. – randbrown