2013-05-11 6 views
0

J'utilise SQL Server 2008. Ma base de données a deux tables.Insérer plusieurs enregistrements de manière plus rapide

Membre

  • MemberID
  • RegCode
  • BrokerCode
  • Nom

TestInstallment

  • RegCode
  • Montant
  • Date de
  • InstallmentNo

Dans les deux tableaux, il y a beaucoup de colonnes, mais j'afficher ici quelques-unes des colonnes. TestInstallment est la table dans laquelle j'importe des données d'Excel et fais un certain calcul. Member table contient des lignes avec RegCode unique et TestInstallment contient plusieurs lignes avec le même RegCode. Par exemple, dans le tableau member, il n'y a qu'une ligne avec RegCode 'A105' donc TestInstallment contient environ 30 lignes avec RegCode 'A105'.

Ma table finale est

Acompte
  • InstallmentId
  • MemberID
  • Montant
  • Date de
  • InstallmentNo

Maintenant, je veux insérer des lignes de TestInstallment en Installment avec la référence de MemberId. Actuellement, je le fais en utilisant un curseur, mais cela prend beaucoup de temps.

Actuellement dans ma base de données Member a environ 47000 lignes et TestInstallment a environ 700000 lignes.

Alors, comment puis-je faire cela plus rapidement? Merci.

Répondre

1

Je suppose que installmentid est un champ d'identité.

insert into installment 
select m.memberid, t.amount, t.date, t.installmentno, 
from member m inner join testinstallment t on m.regcode = t.regcode 
Questions connexes