MSSQL Server 2008 R2’de Çakma Bulk Insert (Tablolar Arası Kolay Kayıt Taşıma)


Bulk Insert kavramı bu yazımdan anlatacağımdan daha kapsamlı ve yer yer karmaşık bir konu. Bu yazımda kaynak tablodaki verilerimi, var olan hedef tabloma ekleyeceğim ve var olmayan, Bulk işlemi sırasında oluşacak, tabloama ekleyeceğim. Bu kullanıma hayatınızın bir bölümünde yazılım ile uğraşıyorsunuz kullanırsınız diye düşünüyorum.

Mantık Yürütme

Şöyle bir senaryo düşünelim, elinizdeki (musteriBilgileri) müşteri tablosununda çok kullanılan kullanıcı adı ve şifresi gibi bilgileri farklı bir tabloda tutmak istiyorsunuz. Nasıl bir yapı kullanırsınız da bu verileri diğer (musteriGirisBilgileri) tabloya taşıyabilirsiniz?

Benim ilk aklıma gelen, Cursor veya Row_Number ile teker teker gezip verileri yazmaktı. Bir şekidle verileri alıp yazmam gerekiyor değil mi? Ama aslında bu kadar karmaşık bir işlem değil yapacağımız.

Kod Yazımı

Kullanım1: “musteriGirisBilgileri” tablosunu el ile (manuel) oluşturup aşağıdaki gibi kullanmak

INSERT INTO musteriGirisBilgileri
SELECT userName, password FROM musteriBilgileri

Kullanım 2: “musteriGirisBilgileri” tablosunu tamamen dinamik olarak kullanmak. Sihirli kod işte bu🙂

SELECT userName, password
INTO musteriGirisBilgileri FROM musteriBilgileri

Burada musteriGirisBilgileri diye dinamik olarak bir tablo oluşturuyor ve tablodaki kolonları data type ları ise musteriBilgileri tablosundaki attığınız kolonlardaki veri tipleri ile birebir aynı…

Sonuç

Aynı veritabanı veya farklı veritabanları içerisinde yer alan  tablolardaki verileri başka bir tabloya kopyalayacağımız zaman bulk insert’i kullanabiliriz.

İyi çalışmalar

,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s