Je vais donner un exemple pseudocode de ma méthode actuelle et si quelqu'un connaît une méthode qui ne fonctionne pas d'une ligne à la fois, je serais très appréciable. J'utilise MS SQL Server 2008.
Source: 1 a big monkey 2 a tall elephant 3 a big giraffe 4 a tiny cow 5 a tall cow Dest: Table 1 Table 2 monkey 1 big elephant 2 tall giraffe 3 big cow 4 tiny cow 5 tall
4 Réponses :
Avec cette quantité de données, la meilleure option peut être d'isoler des mises à jour sur le système, autoriser ou, pouvez-vous simplement faire le premier insert, puis modifier l'insert pour la seconde (à partir d'une table temporaire) pour rejoindre les données d'origine et trouver la clé. P> Identity Insert code> et prépondérer les touches avant d'insérer. P>
De bonnes idées et merci, mais ... Je ne peux pas modifier la première table pour permettre l'insertion d'identité. La deuxième idée serait parfaite mais la raison pour laquelle j'ai besoin de la deuxième table avec une clé étrangère à la première est parce que les données que je suis inséré dans la première ne contiennent rien pour rendre chaque enregistrement unique. La deuxième table de destination contiendrait essentiellement l'identité de la table source. Voir Informations supplémentaires J'ai ajouté à la question.
Vous n'avez pas besoin de Modifier i> la table pour autoriser l'insertion d'identité - Vous devez juste avoir besoin de crocher votre instruction insert avec Set Identity_Insert sur
Utilisez identité_insert, une vue et un lieu de déclenchement et des valeurs d'identité prépopulées avec votre insert. P>
Voir ce violon SQL . P>
J'ai essayé de faire disparaître avec diverses choses au lieu de la gâchette pour que la colonne d'identité du T1 soit utilisée pour T2, mais j'ai finalement échoué. P>
insert into table1 select substring(src.data, 8 /* assuming fixed length as exampled */, len(src.data)) from source src insert into table2 select t1.id, substring(src.data, 3 /* skip 'a ' */, 7) from table1 t1 inner join source src on substring(src.data, 8, len(src.data)) = t1.data For the given example, i cannot do better...
Vous pouvez utiliser Fusionner sur sql violon p> table1 code> et sortie dans
table2 code>.
TABLE2 code> a une clé étrangère définie contre
Table1 code> Vous ne pouvez pas faire la sortie directement à
Table2 code>. Dans ce cas, vous pouvez utiliser une table temporaire comme cible de la sortie et insérer dans
table2 code> de la table temporaire. P> p>
cette réponse aidez-vous?