SSIS adalah alat yang sangat bagus untuk melakukan Transaksi ETL, tetapi pernahkah Anda bertanya-tanya apakah Anda dapat menggunakan alat ini untuk melakukan operasi CRUD dari sumber data? . Saya mencoba ke Google untuk solusi ini tetapi saya tidak dapat menemukan yang akan memuaskan kebutuhan saya sehingga kami harus melakukannya dari awal dan inilah cara saya membuatnya
Pertama, mari asumsikan bahwa Anda memiliki spreadsheet Excel yang terlihat seperti ini
Anda memiliki kolom untuk melakukan tindakan, ID, dan nilai yang ingin Anda simpan. Jadi dalam hal ini, ADD berarti Anda perlu menambahkan ini ke tabel database dengan ItemIddan Values yang benar, DELETE berarti Anda perlu menghapus item dengan ItemIDyang diberikan pada tabel database dan UPDATE berarti Anda memperbarui nilai item dengan yang diberikan
Sekarang seperti inilah tampilan tabel database Anda
Mari kita mulai, dengan asumsi bahwa Anda telah membuka Proyek Layanan Integrasi di Visual Studio mulai dari paket baru, mari buat alurnya
1. Mengonversi Sumber Excel ke Tujuan Recordset
Seret tugas Aliran Data dari Kotak Alat SSIS Anda, konfigurasikan dengan masuk ke Tab Aliran Data
Sekarang seret Sumber Excel dan Tujuan Recordset. Hubungkan mereka bersama
Klik dua kali pada sumber Excel lalu konfigurasikan koneksi, klik Baru dan buat Koneksi Excel baru dengan memilih spreadsheet Excel dengan data yang ingin Anda proses. Pilih pengaturan yang sesuai
Pilih nama sheet tempat data Anda berada
Pratinjau data untuk memeriksa ulang
Buka kolom dan centang setiap kolom yang Anda perlukan untuk diproses
Buat variabel untuk menyimpan data Anda, klik kanan pada kanvas Tugas Aliran Data Anda dan pilih variabel
Buat variabel berikut semuanya di bawah lingkup paket
- Action, String_Data Type – ini akan menyimpan ActionColumn Data
- ItemId, Double_Data Type – ini akan menyimpan ItemIdColumn Data
- Nilai, String_Tipe Data – ini akan menyimpan ItemId0Column Data
- RecordsetOutput, Object Data Type – ini akan menyimpan semua Item Excel
Sekarang konfigurasikan ItemId_1Tujuan Anda, buka properti khusus, lalu pilih nama variabel. Pilih ItemId_2, di sinilah baris Excel Anda akan disimpan
Bagian pertama selesai
2. Ulangi setiap Item Recordset di SSIS
Sekarang Anda telah menyimpan baris Excel Anda dalam sebuah recordset, sekarang mari kita mengulang setiap item untuk melakukan tugas yang Anda butuhkan
Sekarang seret Wadah Foreach Loop ke dalam proyek Anda, hubungkan dengan Tugas Aliran Data
Konfigurasikan variabel yang diperlukan untuk operasi. Klik dua kali Foreach Loop Container lalu pilih collection. Pilih Foreach ADO Enumerator pada opsi Enumerator, lalu pilih variabel ItemId2 untuk data sumber Anda. Pilih mode Pencacahan menjadi Baris di tabel pertama
Petakan variabel individual Anda untuk menetapkan nilai kolom. Buka Pemetaan Variabel dan tetapkan variabel sesuai dengan nilai Indeks. Nilai indeks ini penting dan diurutkan berdasarkan cara tujuan set rekaman mengonfigurasinya, bukan cara di Excel. Untuk memverifikasi, pergi ke Recordset Destination -> Input Columns, jadi dalam contoh ini, tampilannya seperti ini
Jadi Tindakan memetakan ke ItemId4, ItemIDMemetakan ke ItemId6dan ItemId0memetakan ke ItemId8
Sekarang seret wadah urutan dan biarkan kosong dan beri nama pendaratan. Ini akan menjadi area pendaratan variabel Anda dan menentukan apa yang harus dilakukan selanjutnya
Sekarang Anda telah menyimpan data baris pada setiap variabel, mari buat alur kontrol Anda
3. Buat Alur Kontrol Anda di SSIS
Bagian ini akan menjadi seperti ItemId_9atau Values0pernyataan Anda tetapi di SSIS
Sekarang seret tiga Jalankan Tugas SQL dan beri nama Tambahkan, Edit, dan Hapus. Hubungkan mereka ke Kontainer Urutan Pendaratan, lalu konfigurasikan setiap Precedence Constraint (panah hijau)
Double klik Green Arrow untuk ADD SQL Task, kemudian pada Evaluation Operation, pilih Expression kemudian pada Expression pilih Action Variable dan harus sama dengan “Values1”. Ini berarti bahwa Tugas ADD SQL hanya akan dipicu ketika Tindakan sama dengan "Values1", jika tidak maka akan meninggalkannya
Jadi secara ringkas, ekspresinya akan seperti ini
- MENAMBAHKAN. @[Pengguna. Tindakan]==”TAMBAHKAN”
- EDIT. @[Pengguna. Tindakan]==”EDIT”
- MENGHAPUS. @[Pengguna. Tindakan]==”HAPUS”
Sekarang Anda telah membuat alur logika Anda, mari buat Values3tugas untuk setiap kondisi
4. Kirim Nilai Variabel SSIS di Jalankan Tugas SQL
Sekarang buka ADD Execute SQL Task Anda, di Bagian Pemetaan Parameter, petakan parameter Anda. Untuk ItemId, kami membuat parameter yang disebut Values5dan untuk ItemId0kami membuat Values7. Kita juga perlu menentukan Tipe Data yang tepat
Sekarang masuk ke Pengaturan Umum lalu buat ADO baru. Jenis koneksi .NET ke database Anda. Pilih Masukan langsung sebagai Values_8lalu pada Values9ketik ini
Insert INTO MyTable (MyId, Value) values (@ItemId, @Value)
Saya kira untuk ItemID0and ItemID1LETE, Anda tahu apa yang harus dilakukan
Itu saja, tampilan terakhir SSIS Anda akan menjadi seperti ini
Diarsipkan di bawah. CodeProject, Basis Data, Pemrograman, Alat Tagged. Microsoft SQL Server, Layanan Integrasi SQL Server
Artikel ini awalnya diposting di http. //macalay. com/2013/10/29/looping-through-excel-rows-in-ssis-and-perform-crud-instructions
Lisensi
Artikel ini, bersama dengan kode sumber dan file terkait, dilisensikan di bawah The Code Project Open License (CPOL)