Utilisation de MS SQL 2005,Utiliser SQL pour cloner des données dans deux tables qui ont une relation 1-1 entre eux
Tableau 1
ID | T1Value | T2ID | GroupID
----------------------------------
1 | a | 10 | 1
2 | b | 11 | 1
3 | c | 12 | 1
4 | a | 22 | 2
Tableau 2
ID | T2Value
----------------
10 | H
11 | J
12 | K
22 | H
Je veux pour cloner les données pour GroupID == 1 dans un nouveau GroupID afin que je résulte avec ce qui suit:
Tableau 1
ID | T1Value | T2ID | GroupID
----------------------------------
1 | a | 10 | 1
2 | b | 11 | 1
3 | c | 12 | 1
4 | a | 22 | 2
5 | a | 23 | 3
6 | b | 24 | 3
7 | c | 25 | 3
Tableau 2
ID | T2Value
----------------
10 | H
11 | J
12 | K
22 | H
23 | H
24 | J
25 | K
J'ai trouvé quelques modèles de clone SQL qui me permettent de cloner des données de puits dans la même table ... mais que je commence à traiter les données de clonage dans deux tableaux en même temps, puis relier les nouvelles lignes correctement ... ce n'est pas quelque chose que je sens que j'ai une bonne compréhension de.
J'ai pensé que je pourrais faire des auto-jointures pour faire face à cela, mais je suis inquiet dans les cas où les champs non-clés ont les mêmes données dans plusieurs rangées.
Pourquoi la table 2 n'a-t-elle que 7 enregistrements après la deuxième étape? On dirait qu'il devrait avoir 8? –
@Abe - Les deux tables doivent avoir le même nombre d'enregistrements puisqu'elles sont liées 1-1. Pourquoi avez-vous pensé qu'ils devraient 8? Je ne pense pas que je néglige quelque chose, mais mon esprit est bouché après une matinée d'écriture de pages de SQL. – AmoebaMan17
BTW - Notez la colonne GroupID dans la table 1. Je veux seulement cloner les enregistrements qui font partie du même GroupID. Donc, mon exemple est de cloner uniquement les enregistrements qui sont dans GroupID 1. – AmoebaMan17