2009-09-22 8 views
1

Je dois diviser une table existante en deux ou plusieurs tables sur Sql Server 2005. La table contient déjà plus de mille lignes. Pour, par exemple, la table actuelle a les colonnes A, B, C, D, E plus une colonne d'id. Je dois ajouter des lignes A, B, C à une autre table dans une autre base de données et ajouter D, E à une autre table dans une autre base de données.Split Ms Sql 2005 Table à deux ou plusieurs parties

Je sais que c'est bizarre. Mais je dois vraiment faire ça.

Quelle est la meilleure approche?

+0

* Pourquoi * devez-vous faire cela? –

+0

Un mauvais design db appartient à l'ancien programmeur ... Le chef de projet en demande un meilleur. Je dois donc migrer les données existantes vers une nouvelle. – JCasso

Répondre

1

Un millier de lignes est à peine quelque chose. Je suis sûr que même SQL Server peut gérer des millions. Mais si vous souhaitez aller de l'avant, vous pouvez utiliser le code de pseudo ci-dessous.

INSERT INTO SecondTable 
SELECT id, A, B, C 
FROM CurrentTable 

INSERT INTO ThirdTable 
SELECT id, D, E 
FROM CurrentTable 

Ce code suppose que vos 2e et 3e tables sont vides. Si ce n'est pas le cas et que vous devez faire correspondre les identifiants (disons), il ne devrait pas être difficile d'étendre le code ci-dessus pour gérer ce cas.

+0

Un serveur SQL n'est limité que par l'espace disque, la mémoire et la CPU disponible. Les nombres de lignes sont relatifs. Pour votre défense, il peut facilement gérer des charges massives s'il est configuré correctement sur une machine agréable. –

+0

Lorsque noté que la table a un millier de lignes, je voulais juste indiquer qu'il n'est pas vide. Quoi qu'il en soit, il semble que le plus simple consiste à insérer des valeurs sélectionnées. – JCasso

Questions connexes