2012-07-26 3 views
-1

tableaux anciens ont rejoint Key

Auteur clé
----------------------- -
1 Auteur A
2 Auteur B
3 Auteur C
4 Auteur D

------------------------- Numéro de livre de clé
------------------------- 1 Titre de l'ouvrage par un
1 Titre de l'ouvrage par un
4 Titre de l'ouvrage par D
4 Titre de l'ouvrage par D
2 Titre de l'ouvrage par B
------------- ------------

nouvelles tables rejoignant sur NewKey

NewKey Auteur clé
-------------------- -----
1001 1 Auteur A
1002 2 Auteur B
1003 3 Auteur C
1004 4 Auteur D
-------------------------

NewKey Livre clé Titre
- ------------------------
1001 Titre de l'ouvrage 1 par A
1001 Titre de l'ouvrage 1 par A
1004 4 Titre de l'ouvrage par D
1004 4 Titre du livre par D
1002 2 Titre du livre par B
-------------------------Le but de la création de NewKey est de fusionner des centaines de bases de données à l'endroit où les champs Clé se chevauchent. Ce script crée donc un champ NewKey unique au monde avant la fusion. Chaque base de données possède 11 tables avec des champs clés qui se chevauchent. J'ai donc besoin de compléter cette étape pour chaque table du champ Clé.Ajouter un numéro à un numéro existant dans une colonne existante

+1

Pouvez-vous s'il vous plaît nous montrer ** ** la structure de la table en question (colonnes et leurs types de données) et la date peut-être l'échantillon * avant * la mettre à jour, et ce que vous attendez en sortie? –

+0

le numéro existe également dans une table différente dans la même base de données –

+1

Pouvez-vous également expliquer pourquoi, si vous pouvez dériver cette information, vous devez la stocker? Cela semble redondant à moins que le but soit de laisser tomber la colonne du fichier #. –

Répondre

4

Est-ce quelque chose d'aussi simple que cela?

UPDATE dbo.table SET col = [file#] * 100 + col; 

Si elle est d'une autre table:

UPDATE destination 
    SET destination.col = source.[file#] * 100 + destination.col 
    FROM dbo.table AS destination 
    INNER JOIN dbo.other_table AS source 
    ON [some join condition that is anyone's guess]; 
+3

Maintenant, ce serait * trop facile * - il doit y avoir plus :-) –

+0

c'est d'une table différente en effet –

Questions connexes