2010-11-02 18 views
0

Tout d'abord, permettez-moi de m'excuser pour le titre, car il n'est probablement pas aussi clair que je le pense. Ce que je cherche est un moyen de conserver des données d'échantillon dans une base de données (SQL, 2005 2008 et Express) qui sont modifiées de temps en temps. Actuellement, j'ai une poignée de scripts pour remplir la base de données avec un ensemble spécifique de données, mais chaque fois que la base de données est modifiée, tous les scripts doivent être plus ou moins réécrits et je cherchais des alternatives.Méthodes de conservation des données d'échantillon dans une base de données

J'ai vu un certain nombre d'outils et d'autres logiciels pour créer des exemples de données dans une base de données, certains gratuits et d'autres pas. Y a-t-il d'autres méthodes que je n'ai pas envisagées?

Merci d'avance pour toute contribution. Editer: Aussi, si quelqu'un a un quelconque conseil pour gérer la synchronisation des données avec une application ou une base de données en évolution, cela pourrait également être utile.

+1

Définissez «échantillon» pour votre cas. Avez-vous un plus grand bassin de données dont vous voulez un sous-ensemble aléatoire? Voulez-vous des données générées aléatoirement dans un format spécifique? – JNK

+0

Données spécifiques. Il y a une liste de noms d'employés, d'identifiants et un tas d'informations associées qui ne changent pas vraiment, mais les tables de la base de données font toutes les versions. – Joseph

+0

Alors, quel échantillon cherchez-vous? Certains enregistrements de tables spécifiques? Quel est le but? – JNK

Répondre

0

Vous pouvez les enregistrer dans une autre base de données ou même db dans différentes tables distinguées par le nom, comme employee_test

1

Si vous êtes à la recherche d'outils pour le serveur SQL, allez visiter Red Gate Software, ils ont les meilleurs outils. Ils ont un outil de comparaison de données que vous pouvez utiliser pour maintenir à jour les tables de types de recherche et un outil de comparaison SQL que vous pouvez utiliser pour maintenir les tables synchronisées entre deux bases de données. Donc, en utilisant la comparaison de données SQL, créez une base de données avec tous les exemples de données que vous voulez. Ensuite, actualisez périodiquement votre db de test (ou votre dbb s'il s'agit de tables de types de recherche) en utilisant l'outil de comparaison. J'aime aussi l'alternative d'avoir un script (vous pouvez utiliser l'outil Red Gate pour créer des scripts) car cela signifie que vous pouvez stocker cette information dans votre contrôle source et l'utiliser comme partie d'un paquet de déploiement sur d'autres serveurs.

+0

Il semble que l'outil de comparaison de données puisse uniquement comparer des données dans des bases de données avec des tables et des colonnes correspondantes, ou ai-je mal lu cela? Est-il capable de rapprocher les tables et les colonnes qui ont été renommées, déplacées, supprimées ou ajoutées? – Joseph

+0

Je ne sais rien de ce qui va savoir où vous pourriez avoir mappé des données dans un changement de structure. Mais ces types de changements de structure devraient être rares. Si vous faites cela, je pense que l'écriture des scripts de migration est de loin le meilleur choix. Vous pouvez également utiliser SSIS, mais je trouve plus rapide d'écrire des scripts la plupart du temps, à moins que ce ne soit une migration de données compliquée et terriblement grande. – HLGEM

+1

Le volet Mappage d'objets dans SQL Data Compare peut être utilisé pour mapper des tables et des colonnes avec des noms différents. –

0

Joseph,

Avez-vous besoin de garder seulement les données de synchronisation, ou le schéma ainsi?

Une solution à la question de données serait des instantanés SQL Server. Vous créez un instantané de votre configuration initiale, de sorte que les modifications apportées à la base de données "réelle" n'apparaissent pas dans l'instantané. Ensuite, lorsque vous devez réinitialiser la table, sélectionnez l'instantané dans une nouvelle table. Je ne suis pas sûr de savoir comment cela fonctionnera si le schéma change, mais cela pourrait valoir la peine d'essayer.

Pour la génération d'exemples de données, le projet Database dans Visual Studio dispose de fonctionnalités qui créeront des données fausses/aléatoires. Faites-moi savoir si cela a du sens.

Erick

+0

Ça a du sens, je vais regarder dans les instantanés. – Joseph