Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tidak semua fitur database Access berfungsi dengan SQL Server. Misalnya, SQL Server dan Access menggunakan kumpulan kata kunci yang dicadangkan yang berbeda. Perbedaan ini dapat menyebabkan masalah saat Anda bermigrasi menggunakan SQL Server Migration Assistant (SSMA). Bagian berikut menjelaskan kemungkinan masalah migrasi dan bagaimana Anda dapat memperbaikinya.
Pengaturan atau fitur database yang mungkin memengaruhi migrasi
Tinjau pengaturan atau fitur Akses berikut yang dapat memengaruhi migrasi ke SQL Server atau Azure SQL.
- Tabel tidak memiliki indeks unik
- Tabel memiliki kolom replikasi
- Tabel dengan indeks unik berisi beberapa nilai NULL
- Tabel berisi nilai tanggal yang berada di luar rentang SQL Server
- Panjang indeks melebihi 900 byte
- Nama objek adalah kata kunci SQL Server, atau berisi karakter khusus
- Ukuran bidang berbeda dalam hubungan kunci primer atau kunci asing
- Tabel yang dirujuk tidak memiliki kunci primer atau indeks unik
- Tabel memiliki kolom hyperlink
- Fungsi tidak dapat dikonversi ke SQL Server atau Azure SQL
Tabel tidak memiliki indeks unik
Jika Anda memigrasikan tabel tanpa indeks unik ke SQL Server, Anda tidak dapat mengubah tabel setelah migrasi. Batasan ini dapat menyebabkan masalah kompatibilitas aplikasi.
Saat Anda mengonversi objek database Access, jendela Output 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 memiliki kolom replikasi
Jika Anda memigrasikan tabel Access yang menyertakan kolom sistem replikasi ke SQL Server, fungsionalitas replikasi Jet berhenti berfungsi setelah migrasi.
Setelah migrasi, pertimbangkan untuk menggunakan replikasi SQL Server untuk mempertahankan salinan database Anda yang disinkronkan.
Tabel dengan indeks unik berisi beberapa nilai NULL
Sebelum versi 8.13, Anda tidak dapat mentransfer tabel Access yang memiliki indeks unik dengan beberapa nilai null ke SQL Server. Di SQL Server, indeks unik tidak mengizinkan beberapa nilai null. Migrasi gagal untuk tabel ini.
SSMA menandai masalah ini dalam laporan penilaian. Untuk membuat laporan penilaian, lihat Menilai objek database Access untuk konversi.
Jika masalah ini ada, pastikan bahwa kunci primer tidak memiliki nilai null duplikat. Atau, hapus kunci primer atau indeks unik yang berisi beberapa nilai null.
Tabel berisi nilai tanggal yang berada di luar rentang SQL Server
Jenis datetime SQL Server hanya menerima tanggal dalam rentang 1 Januari 1753 hingga 31 Desember 9999. Access menerima tanggal dalam rentang 1 Januari 100, hingga 31 Desember 9999.
SSMA 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 Pengaturan Proyek (Migrasi).
Panjang indeks 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 adalah kata kunci SQL Server atau berisi karakter khusus
Access dan SQL Server memiliki kumpulan kata kunci khusus dan karakter spesial yang berbeda. SQL Server menerima objek yang dinamai dengan menggunakan kata kunci SQL Server atau yang berisi karakter khusus jika Anda menggunakan pengidentifikasi dalam kurung atau dikutip, seperti select atau [select].p. Untuk informasi selengkapnya, lihat Pengidentifikasi database.
Nota
Untuk menggunakan tanda kutip untuk memisahkan pengidentifikasi, SET QUOTED_IDENTIFIER harus ON.
Misalnya, CREATE TABLE [schema](c1 [FOR]) adalah pernyataan yang valid, meskipun schema dan FOR merupakan 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 gagal. Kueri yang benar adalah: SELECT * FROM [schema].
Saat Anda mengonversi objek database Access, panel Output 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 kolom berbeda dalam hubungan kunci primer atau 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 mencantumkan kunci primer atau batasan kunci asing yang tidak dikonversi ke SQL Server. Anda bisa mengubah tipe dan ukuran data pada kolom Access sehingga cocok, lalu menghapus dan menambahkan database Access kembali. Atau, Anda dapat memigrasikan data meskipun batasan ini tidak dibuat di SQL Server.
Tabel yang dirujuk tidak memiliki kunci primer atau indeks unik
Access menerima hubungan antara tabel di mana tabel yang dirujuk tidak memiliki kunci utama atau indeks unik. Namun, SQL Server tidak mendukung jenis hubungan ini.
Saat Anda mengonversi objek database Access, jendela Output mencantumkan tabel apa pun yang memiliki hubungan tetapi tidak ada kunci utama atau indeks unik. Anda dapat mengubah tabel untuk menambahkan kunci primer atau indeks unik, lalu menghapus dan menambahkan database Access kembali. Atau, Anda dapat memigrasikan data meskipun hubungan antara tabel rusak.
Tabel memiliki kolom hyperlink
SQL Server tidak mendukung kolom hyperlink . Sebagai gantinya, kolom diperlakukan seperti kolom memo Access. Secara default, kolom ini dikonversi ke kolom nvarchar(maks) di SQL Server. Anda dapat menyesuaikan pemetaan. Untuk informasi selengkapnya, lihat Pemetaan jenis data sumber dan target.
Fungsi tidak dapat dikonversi ke SQL Server atau Azure SQL
Ekspresi default Access atau aturan validasi mungkin mencakup fungsi sistem Access atau fungsi yang ditentukan oleh pengguna yang tidak dipetakan ke SQL Server atau Azure SQL. Jika Anda menggunakan fungsi yang tidak memetakan ke SQL Server atau Azure SQL, Anda tidak dapat memuat ekspresi default atau aturan validasi ke SQL Server atau Azure SQL.