Bagikan melalui


Fitur Akses yang Tidak Kompatibel (AccessToSQL)

Tidak semua fitur database Access kompatibel dengan SQL Server. Misalnya, SQL Server dan Access memiliki sekumpulan kata kunci yang dipesan yang berbeda. Masalah seperti ini dapat mencegah keberhasilan migrasi ke SQL Server. Gunakan tabel berikut untuk mempelajari kemungkinan masalah migrasi dan apa yang bisa Anda lakukan tentang masalah tersebut.

Database Pengaturan atau Fitur yang Mungkin Memengaruhi Migrasi

Pengaturan atau Fitur Database Access Masalah Migrasi
Tabel access tidak memiliki indeks unik. Jika tabel yang tidak memiliki indeks unik dimigrasikan ke SQL Server, Anda tidak dapat mengubah tabel setelah migrasi. Ini dapat menyebabkan masalah kompatibilitas aplikasi.

Saat Anda mengonversi objek database Access, jendela Output akan mencantumkan tabel Access apa pun yang tidak memiliki indeks unik.

Anda dapat mengonfigurasi Access untuk menambahkan kunci utama pada tabel SQL Server selama konversi. Untuk informasi selengkapnya, lihat Pengaturan Proyek (Konversi).
Tabel access memiliki kolom replikasi. Jika tabel Access yang menyertakan kolom sistem replikasi dimigrasikan ke SQL Server, fungsionalitas replikasi Jet akan rusak setelah migrasi.

Setelah migrasi, pertimbangkan untuk menggunakan replikasi SQL Server untuk mempertahankan salinan database Anda yang disinkronkan.
Tabel access yang memiliki indeks unik berisi beberapa nilai null. Sebelum 8.13, tabel Access yang memiliki indeks unik dengan beberapa nilai null tidak dapat ditransfer ke SQL Server, karena di SQL Server, indeks unik melarang beberapa null. Migrasi akan gagal untuk tabel ini.

SSMA akan menandai masalah ini dalam laporan penilaian. Untuk membuat laporan penilaian, lihat Menilai Objek Database Access untuk Konversi.

Jika masalah ini ada, Anda harus memastikan bahwa kunci primer tidak memiliki nilai null duplikat. Atau, Anda harus menghapus kunci primer atau indeks unik yang berisi beberapa nilai null.
Tabel access berisi nilai tanggal yang berada di luar rentang SQL Server. Jenis tanggalwaktu SQL Server menerima tanggal dalam rentang 1 Jan 1753 hingga 31 Des 9999 saja. Access menerima tanggal dalam rentang 1 Jan 100 hingga 31 Des 9999.

SSMA akan menandai masalah ini dalam laporan penilaian. Untuk membuat laporan penilaian, lihat Menilai Objek Database Access untuk Konversi.

Anda dapat mengonfigurasi bagaimana SSMA mengatasi tanggal yang berada di luar rentang SQL Server. Untuk informasi selengkapnya, lihat Project Pengaturan (Migrasi).
Panjang indeks di Access melebihi 900 byte. Indeks SQL Server memiliki batas 900 byte untuk ukuran total kolom kunci indeks. Jika tabel Access Anda menggunakan indeks yang lebih besar, SSMA akan menampilkan peringatan.

Jika Anda melanjutkan migrasi data, migrasi mungkin gagal.
Nama objek access adalah kata kunci SQL Server, atau berisi karakter khusus. Access dan SQL Server memiliki sekumpulan kata kunci yang dipesan dan karakter khusus yang berbeda. SQL Server akan menerima objek yang dinamai dengan menggunakan kata kunci SQL Server atau yang berisi karakter khusus jika Anda menggunakan pengidentifikasi yang dikutip atau dikutip, seperti "pilih" atau [pilih].p. Untuk informasi selengkapnya, lihat "Pengidentifikasi Berbatas (Mesin Database)" di SQL Server Books Online.

CATATAN: Untuk menggunakan tanda kutip untuk memisahkan pengidentifikasi, SET QUOTED_IDENTIFIER harus AKTIF.

Misalnya, CREATE TABLE [schema](c1 [FOR]) adalah pernyataan yang valid, meskipun skema dan FOR adalah kata kunci yang dicadangkan. Selain itu, CREATE TABLE [xxx*yyy](c1 x&y) adalah pernyataan yang valid, meskipun nama tabel dan kolom berisi karakter khusus * dan &.

Semua kueri yang mereferensikan objek tersebut juga harus menggunakan nama dengan tanda kurung atau tanda kutip. Misalnya, kueri SELECT * FROM schema akan gagal. Kueri yang benar adalah: SELECT * FROM [schema].

Saat Anda mengonversi objek database Access, panel Output akan mencantumkan tabel Access apa pun yang menggunakan kata kunci atau karakter khusus. Anda bisa mengubah tabel di Access, lalu menghapus dan menambahkan database lagi; atau Anda dapat mengubah kueri yang mereferensikan objek tersebut sehingga kueri menggunakan tanda kurung atau tanda kutip untuk memisahkan pengidentifikasi. Jika Anda tidak mengubah kueri, aplikasi Access Anda mungkin mengembalikan kesalahan atau memiliki masalah lain.
Ukuran bidang berbeda dalam hubungan kunci primer/kunci asing. SQL Server tidak mendukung fungsionalitas Jet untuk menautkan kolom yang memiliki jenis atau ukuran data yang berbeda dengan batasan kunci asing.

Saat Anda mengonversi objek database Access, jendela Output akan mencantumkan batasan kunci primer/kunci asing yang tidak akan dikonversi ke SQL Server. Anda bisa mengubah tipe dan ukuran data pada kolom Access sehingga cocok, lalu menghapus dan menambahkan kembali database Access. Atau, Anda dapat memigrasikan data meskipun batasan ini tidak akan dibuat di SQL Server.
Tabel yang dirujuk dalam hubungan Access tidak memiliki kunci utama atau indeks unik. Access menerima hubungan antara tabel di mana tabel yang dirujuk tidak memiliki kunci primer atau indeks unik. Namun, ini tidak didukung oleh SQL Server.

Saat Anda mengonversi objek database Access, jendela Output akan mencantumkan tabel apa pun yang memiliki hubungan tetapi tidak ada kunci primer atau indeks unik. Anda dapat mengubah tabel untuk menambahkan kunci primer atau indeks unik, lalu menghapus dan menambahkan kembali database Access. Atau, Anda dapat memigrasikan data meskipun hubungan antara tabel akan rusak.
Tabel Access memiliki kolom hyperlink. SQL Server tidak mendukung kolom hyperlink . Sebagai gantinya, kolom diperlakukan seperti kolom memo Access. Secara default, kolom ini akan dikonversi ke kolom nvarchar(maks) di SQL Server. Anda dapat menyesuaikan pemetaan. Untuk informasi selengkapnya, lihat Memetakan Jenis Data Sumber dan Target.
Ekspresi aturan default atau validasi berisi fungsi Access yang tidak dapat dikonversi ke SQL Server atau SQL Azure. Mengakses ekspresi default atau aturan validasi mungkin menyertakan fungsi sistem Access atau fungsi yang ditentukan pengguna yang tidak memetakan ke SQL Server atau SQL Azure. Menggunakan fungsi yang tidak memetakan ke SQL Server atau SQL Azure akan mencegah Anda memuat ekspresi default atau aturan validasi ke SQL Server atau SQL Azure.

Lihat Juga

Menyiapkan Database Access untuk Migrasi
Memigrasikan Database Access ke SQL Server