2010-08-29 3 views
2

J'ai une base de données à table unique dont j'ai hérité et migré vers SQL Server, puis je l'ai normalisée en créant, liant et remplissant tout un tas de tables de type recherche qui représentaient des éléments dans le principal. table. Je veux maintenant remplacer ces éléments dans la table d'origine avec leurs clés étrangères. Suis-je coincé écrire un tas de requêtes ou UDF, puis une déclaration INSERT géant pour accomplir cela, ou y at-il un outil que je peux utiliser pour pointer sur les différents domaines et lui faire gérer le travail de grognement pour moi?Normalisation d'une base de données SQL existante

Répondre

2

Redgate SQL Refactor est livré avec une période d'évaluation de 14 jours et dispose d'un refactoring "Split Table" qui sonne comme il pourrait faire ce que vous avez besoin?

La fonction est décrite ainsi:

Segmenter divise une table en deux tables et ré-écrit automatiquement le référence des procédures stockées, vues, et ainsi de suite. Vous pouvez également utiliser ce refactoring pour introduire le référentiel tables d'intégrité. Vous pouvez sélectionner cette fonctionnalité dans le menu contextuel de l'Explorateur d'objets de Management Studio.

+0

Je possède SQL Refactor mais je ne l'ai utilisé que pour refactoriser des scripts que j'écris ou que j'hérite (ce qu'il fait très bien). Bon sang, je vais devoir revenir en arrière et regarder ça. Merci pour l'information. –

+0

Je suis allé de l'avant et j'ai joué avec. Il a, en effet, une fonction pour faire quelque chose comme ça, mais il crée simplement la table secondaire avec SELECT DISTINCT du primaire, puis assigne une contrainte de clé étrangère au champ de la table primaire, pointant sur la nouvelle table secondaire. Je souhaite basculer vers des tables secondaires à nombres entiers, en remplaçant le champ dans le principal par un nouveau champ d'ID entier et en éliminant le champ varchar d'origine. Je ne vois pas comment y arriver avec SQL Refactor. Mais j'ai appris quelque chose de nouveau sur un produit que je possède, alors je vous en remercie! –

1

J'ai eu des expériences similaires. Une fois, j'ai hérité d'une base de données assez volumineuse qui nécessitait une refonte sérieuse du schéma avant de le regarder sans mépris. Comme la mise à niveau était assez importante, j'ai conçu un package SSIS pour migrer les données de l'ancien schéma vers le nouveau. Les activités de recherche ont été utiles pour mapper les anciennes valeurs de texte aux nouvelles clés. Je gardais un script de mon ancien schéma et de mes données à portée de main et je restaurais à plusieurs reprises la base de données dans un sandbox et je la ré-migraisais jusqu'à ce que je puisse satisfaire les pouvoirs que la migration était fiable.

J'ai trouvé qu'il n'y avait qu'une courbe d'apprentissage modérée pour démarrer avec SSIS. Si l'outil est à votre disposition, je recommande de l'essayer.

+0

J'ai déjà utilisé SSIS et DTS, je pense que c'est un excellent outil. Espérait quelque chose qui nécessite moins de travail, car ce genre de chose doit être un scénario assez commun. –

Questions connexes