Bagikan melalui


Pengaturan Proyek (Konversi) (Db2ToSQL)

Halaman Konversi kotak dialog Pengaturan Proyek berisi pengaturan yang mengkustomisasi bagaimana SQL Server Migration Assistant (SSMA) mengonversi sintaks Db2 ke sintaks SQL Server.

Panel Konversi tersedia dalam kotak dialog Pengaturan Proyek dan Pengaturan Default Proyek:

  • Untuk menentukan pengaturan untuk semua proyek SSMA, pada menu Alat pilih Pengaturan Proyek Default, pilih jenis proyek migrasi yang pengaturannya harus dilihat atau diubah dari daftar dropdown Versi Target Migrasi, lalu pilih Umum di bagian bawah panel kiri, lalu pilih Konversi.

  • Untuk menentukan pengaturan untuk proyek saat ini, pada menu Alat pilih Pengaturan Proyek, lalu pilih Umum di bagian bawah panel kiri, lalu pilih Konversi.

Pesan konversi

Membuat pesan tentang masalah yang diterapkan

Menentukan apakah SSMA menghasilkan pesan informasi selama konversi, menampilkannya di panel Output, dan menambahkannya ke kode yang dikonversi.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Tidak

Mode Penuh: Tidak

Opsi lain-lain

Transmisikan ekspresi ROWNUM sebagai bilangan bulat

Saat SSMA mengonversi ekspresi ROWNUM, SSMA mengonversi ekspresi menjadi klausa TOP dan diikuti oleh ekspresi tersebut. Contoh berikut menunjukkan penggunaan ROWNUM dalam pernyataan DELETE di Db2:

DELETE FROM Table1
WHERE ROWNUM < expression
    AND Field1 >= 2

Contoh berikut menunjukkan Transact-SQL yang dihasilkan:

DELETE TOP (expression - 1)
FROM Table1
WHERE Field1 >= 2

TOP mengharuskan ekspresi klausul TOP dievaluasi menjadi bilangan bulat. Jika bilangan bulat negatif, pernyataan akan menghasilkan kesalahan.

  • Jika Anda memilih Ya, SSMA akan melemparkan ekspresi sebagai bilangan bulat.

  • Jika Anda memilih Tidak, SSMA menandai semua ekspresi non-bilangan bulat sebagai kesalahan dalam kode yang dikonversi.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Penuh: Tidak

Mode Optimis: Ya

Pemetaan skema default

Pengaturan ini menentukan bagaimana skema Db2 dipetakan ke skema SQL Server. Dua opsi tersedia dalam pengaturan ini:

  1. Skema ke database: Dalam mode ini, skema sch1 Db2 dipetakan secara default ke dbo skema SQL Server dalam database sch1SQL Server .

  2. Skema ke skema: Dalam mode ini, skema sch1 Db2 dipetakan secara default ke sch1 skema SQL Server dalam database SQL Server default yang disediakan dalam dialog koneksi.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis/Penuh: Skema ke basis data

Metode konversi pernyataan MERGE

  • Jika Anda memilih Menggunakan pernyataan INSERT, UPDATE, DELETE, SSMA mengonversi pernyataan MERGER menjadi pernyataan INSERT, UPDATE, DELETE.

  • Jika Anda memilih Menggunakan pernyataan MERGE, SSMA mengonversi pernyataan MERGER menjadi pernyataan MERGE di SQL Server.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis/Penuh: Menggunakan pernyataan MERGE

Mengonversi panggilan ke subprogram yang menggunakan argumen default

Fungsi SQL Server tidak mendukung kelalaian parameter dalam panggilan fungsi. Selain itu, fungsi dan prosedur SQL Server tidak mendukung ekspresi sebagai nilai parameter default.

  • Jika Anda memilih Ya dan panggilan fungsi menghilangkan parameter, SSMA menyisipkan kata kunci default ke dalam fungsi dan memanggil dalam posisi yang benar. Kemudian, itu menandai panggilan dengan peringatan.

  • Jika Anda memilih Tidak, SSMA menandai panggilan fungsi sebagai kesalahan.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Mengonversi fungsi COUNT ke COUNT_BIG

Jika fungsi COUNT Anda cenderung mengembalikan nilai yang lebih besar dari 2.147.483.647, yaitu 231-1, Anda harus mengonversi fungsi menjadi COUNT_BIG.

  • Jika Anda memilih Ya, SSMA mengonversi semua penggunaan COUNT ke COUNT_BIG.

  • Jika Anda memilih Tidak, fungsi tetap sebagai COUNT. SQL Server mengembalikan kesalahan jika fungsi mengembalikan nilai yang lebih besar dari 231-1.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Penuh: Ya

Mode Optimis: Tidak

Mengonversi pernyataan FORALL ke pernyataan WHILE

Menentukan bagaimana SSMA akan memperlakukan perulangan FORALL pada elemen koleksi PL/SQL.

  • Jika Anda memilih Ya, SSMA membuat perulangan WHILE di mana elemen koleksi diambil satu per satu.

  • Jika Anda memilih Tidak, SSMA menghasilkan set baris dari koleksi menggunakan metode node( ) dan menggunakannya sebagai tabel tunggal. Ini lebih efisien, tetapi membuat kode output kurang dapat dibaca.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Tidak

Mode Penuh: Ya

Konversi kunci asing dengan aksi referensial SET NULL pada kolom yang bersifat NOT NULL

Db2 memungkinkan pembuatan batasan kunci asing, di mana SET NULL tindakan tidak mungkin dilakukan karena NULL tidak diizinkan di kolom yang direferensikan. SQL Server tidak mengizinkan konfigurasi kunci asing tersebut.

  • Jika Anda memilih Ya, SSMA menghasilkan tindakan referensial seperti di Db2, tetapi Anda perlu membuat perubahan manual sebelum memuat batasan ke SQL Server. Misalnya, Anda dapat memilih TIDAK ADA TINDAKAN alih-alih SET NULL.

  • Jika Anda memilih Tidak, batasan ditandai sebagai kesalahan.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Tidak

Mengonversi panggilan fungsi ke panggilan prosedur

Beberapa fungsi Db2 didefinisikan sebagai transaksi otonom atau berisi pernyataan yang tidak akan valid di SQL Server. Dalam kasus ini, SSMA membuat suatu prosedur dan fungsi yang menjadi pembungkus dari prosedur tersebut. Fungsi yang dikonversi memanggil prosedur penerapan.

SSMA dapat mengonversi panggilan ke fungsi pembungkus menjadi panggilan ke prosedur. Ini menciptakan kode yang lebih dapat dibaca dan dapat meningkatkan performa. Namun, konteksnya tidak selalu mengizinkannya; misalnya, Anda tidak dapat mengganti panggilan fungsi di daftar SELECT dengan panggilan prosedur. SSMA memiliki beberapa opsi untuk mencakup kasus umum:

  • Jika Anda memilih Selalu, SSMA mencoba mengonversi panggilan fungsi pembungkus menjadi panggilan prosedur. Jika konteks saat ini tidak mengizinkan konversi ini, pesan kesalahan akan dihasilkan. Dengan cara ini, tidak ada panggilan fungsi yang tersisa dalam kode yang dihasilkan.

  • Jika Anda memilih Jika memungkinkan, SSMA melakukan pemindahan ke panggilan prosedur hanya jika fungsi memiliki parameter output. Saat pemindahan tidak dimungkinkan, atribut output parameter akan dihapus. Dalam semua kasus lain, SSMA meninggalkan panggilan fungsi.

  • Jika Anda memilih Tidak Pernah, SSMA meninggalkan semua panggilan fungsi sebagai panggilan fungsi. Terkadang pilihan ini mungkin tidak dapat diterima karena alasan performa.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis/Penuh: Jika memungkinkan

Mengonversi pernyataan LOCK TABLE

SSMA dapat mengonversi banyak pernyataan LOCK TABLE menjadi petunjuk tabel. SSMA tidak dapat mengonversi pernyataan LOCK TABLE apa pun yang berisi klausa PARTITION, SUBPARTITION, @dblink, dan NOWAIT, dan menandai pernyataan tersebut dengan pesan kesalahan konversi.

  • Jika Anda memilih Ya, SSMA mengonversi pernyataan LOCK TABLE yang didukung menjadi petunjuk tabel.

  • Jika Anda memilih Tidak, SSMA menandai semua pernyataan LOCK TABLE dengan pesan kesalahan konversi.

Tabel berikut ini memperlihatkan bagaimana SSMA mengonversi mode kunci Db2:

Mode kunci Db2 Petunjuk tabel SQL Server
PEMBAGIAN BARIS ROWLOCK, HOLDLOCK
DERET EKSKLUSIF ROWLOCK, XLOCK, HOLDLOCK
PEMBAHARUAN BAGI = BAGI BARIS ROWLOCK, HOLDLOCK
BAGIKAN TABLOCK, HOLDLOCK
BAGIKAN BARIS EKSKLUSIF TABLOCK, XLOCK, HOLDLOCK
EKSKLUSIF TABLOCKX, HOLDLOCK

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Mengonversi pernyataan OPEN-FOR untuk parameter REF CURSOR OUT

Di Db2, pernyataan OPEN-FOR dapat digunakan untuk mengembalikan hasil yang diatur ke parameter OUT subprogram jenis REF CURSOR. Di SQL Server, prosedur tersimpan langsung mengembalikan hasil pernyataan SELECT.

SSMA dapat mengonversi banyak pernyataan OPEN-FOR menjadi pernyataan SELECT.

  • Jika Anda memilih Ya, SSMA mengonversi pernyataan OPEN-FOR menjadi pernyataan SELECT, yang mengembalikan hasil yang diatur ke klien.

  • Jika Anda memilih Tidak, SSMA menghasilkan pesan kesalahan di kode yang dikonversi dan di panel Output.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Mengonversi rekaman sebagai daftar variabel terpisah

SSMA dapat mengonversi rekaman Db2 menjadi variabel terpisah dan menjadi variabel XML dengan struktur tertentu.

  • Jika Anda memilih Ya, SSMA mengonversi rekaman menjadi daftar variabel terpisah jika memungkinkan.

  • Jika Anda memilih Tidak, SSMA mengonversi rekaman menjadi variabel XML dengan struktur tertentu.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Mengonversi panggilan fungsi SUBSTR ke panggilan fungsi SUBSTRING

SSMA dapat mengonversi panggilan fungsi SUBSTR Db2 menjadi panggilan fungsi substring SQL Server, tergantung pada jumlah parameter. Jika SSMA tidak dapat mengonversi panggilan fungsi SUBSTR, atau jumlah parameter tidak didukung, SSMA mengonversi panggilan fungsi SUBSTR menjadi panggilan fungsi SSMA kustom.

  • Jika Anda memilih Ya, SSMA mengonversi panggilan fungsi SUBSTR yang menggunakan tiga parameter menjadi substring SQL Server. Fungsi SUBSTR lainnya akan dikonversi untuk memanggil fungsi SSMA kustom.

  • Jika Anda memilih Tidak, SSMA mengonversi panggilan fungsi SUBSTR menjadi panggilan fungsi SSMA kustom.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik: Ya

Mode Penuh: Tidak

Mengonversi subjenis

SSMA dapat mengonversi subjenis PL/SQL dengan dua cara:

  • Jika Anda memilih Ya, SSMA membuat jenis yang ditentukan pengguna SQL Server dari subjenis dan menggunakannya untuk setiap variabel subjenis ini.

  • Jika Anda memilih Tidak, SSMA menggantikan semua deklarasi sumber subjenis dengan jenis yang mendasar dan mengonversi hasilnya seperti biasa. Dalam hal ini, tidak ada jenis tambahan yang dibuat di SQL Server

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Tidak

Mengubah sinonim

Sinonim untuk objek Db2 berikut dapat dimigrasikan ke SQL Server:

  • Tabel dan tabel objek
  • Pandangan dan tampilan objek
  • Prosedur dan fungsi tersimpan
  • Pandangan Terwujud

Sinonim untuk objek Db2 berikut dapat diganti dengan referensi langsung ke objek:

  • Urutan
  • Paket
  • Objek skema kelas Java
  • Jenis objek yang ditentukan pengguna

Sinonim lain tidak dapat dimigrasikan. SSMA menghasilkan pesan kesalahan untuk sinonim dan semua referensi yang menggunakan sinonim.

  • Jika Anda memilih Ya, SSMA membuat sinonim SQL Server dan referensi objek langsung sesuai dengan daftar sebelumnya.

  • Jika Anda memilih Tidak, SSMA membuat referensi objek langsung untuk semua sinonim yang tercantum di sini.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Konversikan TO_CHAR(tanggal, format)

SSMA dapat mengonversi Db2 TO_CHAR(tanggal, format) menjadi prosedur dari database sysdb.

  • Jika Anda memilih Menggunakan fungsi TO_CHAR_DATE, SSMA mengonversi TO_CHAR(tanggal, format) menjadi fungsi TO_CHAR_DATE menggunakan bahasa Inggris untuk konversi.

  • Jika Anda memilih Menggunakan fungsi TO_CHAR_DATE_LS (NLS care), SSMA mengonversi TO_CHAR(tanggal, format) menjadi fungsi TO_CHAR_DATE_LS menggunakan bahasa sesi untuk konversi

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Menggunakan fungsi TO_CHAR_DATE

Mode Penuh: Menggunakan fungsi TO_CHAR_DATE_LS (perawatan NLS)

Mengonversi pernyataan pemrosesan transaksi

SSMA dapat mengonversi pernyataan pemrosesan transaksi Db2:

  • Jika Anda memilih Ya, SSMA mengonversi pernyataan pemrosesan transaksi Db2 ke pernyataan SQL Server.

  • Jika Anda memilih Tidak, SSMA menandai pernyataan pemrosesan transaksi sebagai kesalahan konversi.

Catatan

Db2 membuka transaksi secara implisit. Untuk meniru perilaku ini di SQL Server, Anda harus menambahkan pernyataan BEGIN TRANSACTION secara manual di mana Anda ingin transaksi Anda dimulai. Atau, Anda dapat menjalankan perintah SET IMPLICIT_TRANSACTIONS ON di awal sesi Anda. SSMA menambahkan SET IMPLICIT_TRANSACTIONS ON secara otomatis saat mengonversi subrutin dengan transaksi otonom.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Meniru perilaku null Db2 dalam klausul ORDER BY

Nilai NULL diurutkan secara berbeda di SQL Server dan Db2:

  • Di SQL Server, NULL nilai adalah nilai terendah dalam daftar yang diurutkan. Dalam daftar secara urutan menaik, nilai NULL muncul terlebih dahulu.

  • Di Db2, NULL nilai adalah nilai tertinggi dalam daftar yang diurutkan. Secara default, NULL nilai muncul terakhir dalam daftar urutan naik.

  • Db2 memiliki klausul NULLS FIRST dan NULLS LAST, yang memungkinkan Anda mengubah cara Db2 mengurutkan NULL.

SSMA dapat meniru perilaku ORDER BY Db2 dengan memeriksa nilai NULL. Kemudian pertama-tama mengurutkan menurut NULL nilai dalam urutan yang ditentukan, lalu mengurutkan menurut nilai lain.

  • Jika Anda memilih Ya, SSMA mengonversi pernyataan Db2 dengan cara yang menimulasi perilaku Db2 ORDER BY.

  • Jika Anda memilih Tidak, SSMA mengabaikan aturan Db2 dan menghasilkan pesan kesalahan saat menemukan klausa NULLS FIRST dan NULLS LAST.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Tidak

Mode Penuh: Ya

Mensimulasikan pengecualian jumlah baris pada SELECT

Jika pernyataan SELECT dengan klausul INTO tidak mengembalikan baris apa pun, Db2 akan menaikkan pengecualian NO_DATA_FOUND. Jika pernyataan mengembalikan dua atau lebih baris, pengecualian TOO_MANY_ROWS dilontarkan. Pernyataan yang dikonversi di SQL Server tidak menimbulkan pengecualian apa pun jika jumlah baris berbeda dari satu.

  • Jika Anda memilih Ya, SSMA menambahkan panggilan ke prosedur sysdb db_error_exact_one_row_check setelah setiap pernyataan SELECT. Prosedur ini menimulasi pengecualian NO_DATA_FOUND dan TOO_MANY_ROWS. Ini adalah default dan memungkinkan produksi ulang perilaku Db2 sedekat mungkin. Anda harus selalu memilih Ya jika kode sumber memiliki penangan pengecualian yang memproses kesalahan ini. Jika pernyataan SELECT terjadi di dalam fungsi yang ditentukan pengguna, modul ini dikonversi ke prosedur tersimpan, karena menjalankan prosedur tersimpan dan meningkatkan pengecualian tidak kompatibel dengan konteks fungsi SQL Server.

  • Jika Anda memilih Tidak, tidak ada pengecualian yang dihasilkan. Itu dapat berguna ketika SSMA mengonversi fungsi yang ditentukan pengguna dan Anda ingin tetap menjadi fungsi di SQL Server

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Menghasilkan kesalahan untuk DBMS_SQL saat mem-parse.

  • Jika Anda memilih Kesalahan, SSMA menghasilkan kesalahan pada konversi DBMS_SQL.PARSE.

  • Jika Anda memilih Peringatan, SSMA menghasilkan peringatan pada konversi DBMS_SQL.PARSE.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis/Penuh: Error

Membuat kolom ROWID

Saat SSMA membuat tabel di SQL Server, SSMA dapat membuat kolom ROWID. Saat data dimigrasikan, setiap baris mendapatkan nilai UNIQUEIDENTIFIER baru yang dihasilkan oleh fungsi newid().

  • Jika Anda memilih Ya, kolom ROWID dibuat di semua tabel, dan SQL Server menghasilkan GUID saat Anda menyisipkan nilai. Selalu pilih Ya jika Anda berencana menggunakan Penguji SSMA.

  • Jika Anda memilih Tidak, kolom ROWID tidak ditambahkan ke tabel.

  • Tambahkan kolom ROWID untuk tabel dengan pemicu tambahkan ROWID untuk tabel yang berisi pemicu (default).

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Menambahkan kolom ROWID untuk tabel dengan pemicu

Mode Penuh: Ya

Hasilkan indeks unik pada kolom ROWID

Menentukan apakah SSMA menghasilkan kolom indeks unik pada kolom yang dihasilkan ROWID atau tidak. Jika opsi diatur ke YES, indeks unik dihasilkan. Jika diatur ke NO, indeks unik tidak dihasilkan pada kolom ROWID.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Konversi modul lokal

Menentukan jenis konversi subprogram bersarang Db2 (yang dinyatakan dalam prosedur atau fungsi tersimpan mandiri).

  • Jika Anda memilih Sebaris, panggilan subprogram berlapis digantikan oleh isinya.

  • Jika Anda memilih Prosedur tersimpan, subprogram berlapis dikonversi ke prosedur tersimpan SQL Server, dan panggilannya diganti pada panggilan prosedur ini.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis/Penuh: Dalam Garis

Menggunakan ISNULL dalam perangkaian string

Db2 dan SQL Server mengembalikan hasil yang berbeda saat perangkaian string menyertakan NULL nilai. Db2 memperlakukan NULL nilai seperti set karakter kosong. SQL Server mengembalikan NULL.

  • Jika Anda memilih Ya, SSMA mengganti karakter penggambungan Db2 (||) dengan karakter perangkaian SQL Server (+). SSMA juga memeriksa ekspresi di kedua sisi penggabungan untuk nilai NULL.

  • Jika Anda memilih Tidak, SSMA menggantikan karakter penggabungan, tetapi tidak memeriksa nilai NULL.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Menggunakan ISNULL dalam panggilan fungsi REPLACE

Pernyataan ISNULL digunakan dalam panggilan fungsi REPLACE untuk meniru perilaku Db2. Opsi berikut ini ada untuk pengaturan ini:

  • YA
  • TIDAK

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Tidak

Mode Penuh: Ya

Menggunakan ISNULL dalam panggilan fungsi CONCAT

Pernyataan ISNULL digunakan dalam panggilan fungsi CONCAT untuk meniru perilaku Db2. Opsi berikut ini ada untuk pengaturan ini:

  • YA
  • TIDAK

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimis: Tidak

Mode Penuh: Ya

Gunakan fungsi konversi asli jika memungkinkan

  • Jika Anda memilih Ya, SSMA mengonversi TO_CHAR(tanggal, format) menjadi fungsi konversi asli jika memungkinkan.

  • Jika Anda memilih Tidak, SSMA mengonversi opsi TO_CHAR(tanggal, format) menjadi TO_CHAR_DATE atau TO_CHAR_DATE_LS (ditentukan oleh opsi "Konversi TO_CHAR(tanggal, format)").

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik: Ya

Mode Penuh: Tidak

Gunakan SELECT... UNTUK XML saat mengonversi SELECT... INTO untuk variabel catatan

Menentukan apakah akan menghasilkan tataan hasil XML saat Anda memilih ke dalam variabel rekaman.

  • Jika Anda memilih Ya, pernyataan SELECT mengembalikan XML.

  • Jika Anda memilih Tidak, pernyataan SELECT mengembalikan tataan hasil.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Tidak

Konversi klausa RETURNING

Mengonversi klausa RETURNING dalam pernyataan DELETE ke OUTPUT

Db2 menyediakan klausa RETURNING sebagai cara untuk segera mendapatkan nilai yang dihapus. SQL Server menyediakan fungsionalitas tersebut dengan klausa OUTPUT.

  • Jika Anda memilih Ya, SSMA mengonversi klausa RETURNING dalam pernyataan DELETE ke klausa OUTPUT. Karena pemicu pada tabel dapat mengubah nilai, nilai yang dikembalikan mungkin berbeda di SQL Server daripada di Db2.

  • Jika Anda memilih Tidak, SSMA menghasilkan pernyataan SELECT sebelum pernyataan DELETE untuk mengambil nilai yang dikembalikan.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Mengonversi klausa RETURNING dalam pernyataan INSERT ke OUTPUT

Db2 menyediakan klausa RETURNING sebagai cara mendapatkan segera nilai yang baru dimasukkan. SQL Server menyediakan fungsionalitas tersebut dengan klausa OUTPUT.

  • Jika Anda memilih Ya, SSMA mengonversi klausa RETURNING dalam pernyataan INSERT menjadi OUTPUT. Karena pemicu pada tabel dapat mengubah nilai, nilai yang dikembalikan mungkin berbeda di SQL Server daripada di Db2.

  • Jika Anda memilih Tidak, SSMA meniru fungsionalitas Db2 dengan menyisipkan lalu memilih nilai dari tabel referensi.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Mengubah klausa RETURNING dalam pernyataan UPDATE ke OUTPUT

Db2 menyediakan klausul RETURNING sebagai cara untuk segera mendapatkan nilai yang diperbarui. SQL Server menyediakan fungsionalitas tersebut dengan klausa OUTPUT.

  • Jika Anda memilih Ya, SSMA mengonversi klausa RETURNING dalam pernyataan UPDATE ke klausa OUTPUT. Karena pemicu pada tabel dapat mengubah nilai, nilai yang dikembalikan mungkin berbeda di SQL Server daripada di Db2.

  • Jika Anda memilih Tidak, SSMA akan menghasilkan pernyataan SELECT setelah pernyataan UPDATE untuk mengambil nilai yang dikembalikan.

Saat Anda memilih mode konversi dalam kotak Mode , SSMA menerapkan pengaturan berikut:

Mode Default/Optimistik/Penuh: Ya

Konversi urutan

Generator urutan mengonversi

Di Db2, Anda dapat menggunakan Urutan untuk menghasilkan pengidentifikasi unik.

SSMA dapat mengonversi Urutan-urutan menjadi yang berikut ini.

  • Menggunakan generator urutan SQL Server.

  • Menggunakan generator urutan SSMA.

  • Menggunakan identitas kolom.

Opsi default saat mengonversi ke SQL Server adalah menggunakan generator urutan. Namun, SQL Server 2012 (11.x) dan SQL Server 2014 (12.x) tidak mendukung perolehan nilai sekuens saat ini (seperti metode currval dari sekuens Db2). Lihat situs blog tim SSMA untuk panduan tentang memigrasikan metode kurval urutan Db2.

SSMA juga menyediakan opsi untuk mengonversi urutan Db2 menjadi emulator urutan SSMA.

Terakhir, Anda juga dapat mengonversi urutan yang ditetapkan ke kolom dalam tabel ke nilai identitas SQL Server. Anda harus menentukan pemetaan antara urutan ke kolom identitas pada tab Tabel Db2

Mengonversikan CURRVAL di luar konteks pemicu

Hanya terlihat saat Generator Urutan Konversi diatur ke menggunakan identitas kolom. Karena Db2 Sequences adalah objek yang terpisah dari tabel, banyak tabel yang menggunakan Sequences memakai trigger untuk menghasilkan dan menyisipkan nilai sequence baru. SSMA mengomentari pernyataan ini, atau menandainya sebagai kesalahan ketika mengomentari pernyataan tersebut akan menghasilkan kesalahan.

  • Jika Anda memilih Ya, SSMA menandai semua referensi ke pemicu eksternal pada sekuens CURRVAL yang telah dikonversi dengan peringatan.

  • Jika Anda memilih Tidak, SSMA akan menandai semua referensi ke pemicu eksternal pada urutan CURRVAL yang dikonversi sebagai kesalahan.