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.
Saat memigrasikan database Anda dari SQL Server ke Azure SQL Database, Anda mungkin menemukan bahwa database SQL Server Anda memerlukan beberapa rekayasa ulang sebelum dapat dimigrasikan. Artikel ini menyediakan panduan untuk membantu Anda dalam melakukan rekayasa ulang ini dan memahami alasan yang mendasari mengapa rekayasa ulang diperlukan. Untuk mendeteksi ketidaksesuaian dan memigrasikan database ke Azure SQL Database, gunakan Azure Data Migration Service.
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
Gambaran Umum
Sebagian besar fitur Transact-SQL (T-SQL) yang digunakan aplikasi didukung penuh di Microsoft SQL Server dan Azure SQL Database. Misalnya, komponen SQL inti seperti jenis data, operator, string, aritmetika, logis, dan fungsi kursor bekerja secara identik di SQL Server dan SQL Database. Namun, ada beberapa perbedaan T-SQL dalam elemen DDL (bahasa definisi data) dan DML (bahasa manipulasi data) yang menghasilkan pernyataan dan kueri T-SQL yang hanya didukung secara parsial (yang kita bahas nanti di artikel ini).
Selain itu, ada beberapa fitur dan sintaksis yang tidak didukung sama sekali karena Azure SQL Database dirancang untuk mengisolasi fitur dari ketergantungan pada database sistem dan sistem operasi. Dengan demikian, sebagian besar fitur tingkat instans tidak didukung di SQL Database. Opsi dan pernyataan T-SQL tidak tersedia jika mengonfigurasi opsi tingkat instans, komponen sistem operasi, atau menentukan konfigurasi sistem file. Ketika kemampuan tersebut diperlukan, alternatif sesuai yang sering tersedia dengan cara lain dari SQL Database atau dari fitur atau layanan Azure lainnya.
Misalnya, ketersediaan tinggi tersedia di Azure SQL Database. Pernyataan T-SQL yang terkait dengan grup ketersediaan tidak didukung oleh SQL Database, dan tampilan manajemen dinamis yang terkait dengan Grup Ketersediaan AlwaysOn juga tidak didukung.
Untuk daftar fitur yang didukung dan tidak didukung oleh SQL Database, lihat Perbandingan fitur: Azure SQL Database dan Azure SQL Managed Instance. Halaman ini melengkapi artikel tersebut, dan berfokus pada pernyataan T-SQL.
Pernyataan sintaksis T-SQL dengan perbedaan parsial
Pernyataan DDL inti tersedia, tetapi ekstensi pernyataan DDL yang terkait dengan fitur yang tidak didukung, seperti penempatan file pada disk, tidak didukung.
- Di SQL Server, pernyataan
CREATE DATABASEdanALTER DATABASEmemiliki lebih dari tiga lusin opsi. Pernyataan tersebut mencakup penempatan file, FILESTREAM, dan opsi broker layanan yang hanya berlaku untuk SQL Server. Ini mungkin tidak masalah jika Anda membuat database di SQL Database sebelum bermigrasi, tetapi jika Anda memigrasikan kode T-SQL yang membuat database, Anda harus membandingkan CREATE DATABASE (Azure SQL Database) dengan sintaks SQL Server di CREATE DATABASE (SQL Server T-SQL) untuk memastikan semua opsi yang Anda gunakan didukung.CREATE DATABASEuntuk Azure SQL Database juga memiliki tujuan layanan dan opsi kumpulan elastis yang hanya berlaku untuk SQL Database. - Pernyataan
CREATE TABLEdanALTER TABLEmemiliki opsiFILETABLEdanFILESTREAMyang tidak dapat digunakan di SQL Database karena ada fitur yang tidak didukung. - Membuat, mengubah, atau menghilangkan objek pengguna seperti tabel, tampilan, atau prosedur tersimpan
CREATEmenggunakan pernyataan , ,ALTERdanDROPyang sesuai dalammasterdatabase di server logis tidak didukung. -
CREATE LOGINpernyataan danALTER LOGINdidukung, tetapi tidak menawarkan semua opsi yang tersedia di SQL Server. Untuk membuat database Anda lebih portabel, SQL Database menyarankan penggunaan fitur pengguna database mandiri alih-alih masuk kapan pun memungkinkan. Untuk informasi selengkapnya, lihat MEMBUAT LOGIN, MENGUBAH LOGIN, dan Mengotorisasi akses database ke SQL Database, SQL Managed Instance, dan Azure Synapse Analytics.
Sintaksis T-SQL tidak didukung di Azure SQL Database
Selain pernyataan T-SQL yang terkait dengan fitur yang tidak didukung yang dijelaskan dalam Perbandingan Fitur: Azure SQL Database dan Azure SQL Managed Instance, pernyataan dan grup pernyataan berikut tidak didukung. Dengan demikian, jika database yang akan dimigrasikan menggunakan salah satu fitur berikut, rekayasa ulang aplikasi Anda untuk menghilangkan fitur dan pernyataan T-SQL ini.
- Kolase objek sistem.
- Terkait koneksi: Pernyataan titik akhir. SQL Database tidak mendukung autentikasi Windows, tetapi mendukung autentikasi Microsoft Entra. Ini termasuk autentikasi perwakilan Direktori Aktif yang digabungkan dengan ID Microsoft Entra. Untuk informasi selengkapnya, lihat Autentikasi Microsoft Entra untuk Azure SQL.
- Kueri lintas database dan lintas instans menggunakan tiga atau empat nama bagian. Tiga nama bagian merujuk pada database
tempdbdan database saat ini didukung. Kueri elastik mendukung referensi baca saja ke tabel di database MSSQL lainnya. - Rangkaian kepemilikan lintas database dan
TRUSTWORTHYproperti database. -
EXECUTE AS LOGIN. GunakanEXECUTE AS USERsebagai gantinya. - Extensible key management (EKM) untuk kunci enkripsi. Kunci yang dikelola pelanggan enkripsi data transparan (TDE) dan kunci master kolom Always Encrypted dapat disimpan di Azure Key Vault.
- Pengaturan Peristiwa: pemberitahuan peristiwa, pemberitahuan kueri.
- Properti file: Sintaksis yang terkait dengan nama file database, penempatan, ukuran, dan properti file lainnya yang secara otomatis dikelola oleh SQL Database.
- Ketersediaan tinggi: Sintaksis yang terkait dengan ketersediaan tinggi dan pemulihan database, yang dikelola oleh SQL Database. Ini mencakup sintaksis untuk pencadangan, pemulihan, Grup Ketersediaan AlwaysOn, pencerminan database, pengiriman log, model pemulihan.
- Sintaksis yang terkait dengan rekam jepret, transaksional, dan replikasi penggabungan, yang tidak tersedia di SQL Database. Langganan replikasi didukung.
- Fungsi:
fn_get_sql,fn_virtualfilestats,fn_virtualservernodes. - Konfigurasi instans: Sintaksis yang terkait dengan memori server, utas pekerja, afinitas CPU, bendera pelacakan. Gunakan tingkat layanan dan ukuran komputasi sebagai gantinya.
-
KILL STATS JOB. -
OPENQUERY,OPENDATASOURCE, dan nama empat bagian. - .NET Framework: integrasi runtime bahasa umum (CLR)
- Pencarian semantik
- Info masuk server: Gunakan info masuk lingkup database sebagai gantinya.
- Izin tingkat server:
GRANT,REVOKE, danDENYizin tingkat server tidak didukung. Beberapa izin tingkat server digantikan oleh izin tingkat database, atau diberikan secara implisit oleh peran server bawaan. Beberapa DMV tingkat server dan tampilan katalog memiliki tampilan tingkat database yang serupa. SET REMOTE_PROC_TRANSACTIONSSHUTDOWNsp_addmessage-
sp_configuredanRECONFIGURE. ALTER DATABASE SCOPED CONFIGURATION didukung. sp_helpusersp_migrate_user_to_contained- SQL Server Agent: Sintaks yang bergantung pada SQL Server Agent atau
msdbdatabase: pemberitahuan, operator, server manajemen pusat. Gunakan skrip, seperti PowerShell sebagai gantinya. - Audit SQL Server: Gunakan audit SQL Database sebagai gantinya.
- Jejak SQL Server.
- Bendera pelacakan.
- Penelusuran kesalahan T-SQL.
- Pemicu cakupan server atau masuk.
- Pernyataan
USE: Untuk mengubah konteks database ke database lain, Anda harus membuat koneksi baru ke database tersebut.
Referensi T-SQL lengkap
Untuk informasi selengkapnya tentang tata bahasa, penggunaan, dan contoh T-SQL, lihat referensiTransact-SQL (Mesin Database).
Tentang tag "Berlaku untuk"
Referensi T-SQL mencakup artikel yang terkait dengan semua versi SQL Server terbaru. Di bawah judul artikel terdapat bilah ikon, yang mencantumkan platform MSSQL, dan mengindikasikan tingkat kesesuaian. Misalnya, grup ketersediaan diperkenalkan di SQL Server 2012. Artikel BUAT GRUP KETERSEDIAAN menunjukkan bahwa pernyataan tersebut berlaku untuk SQL Server (dimulai dari 2012). Pernyataan ini tidak berlaku untuk SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, Azure Synapse Analytics, atau Gudang Data Paralel.
Dalam beberapa kasus, subjek umum artikel dapat digunakan dalam suatu produk, tetapi ada perbedaan kecil antara produk. Perbedaan ditunjukkan pada titik tengah dalam artikel sebagaimana mestinya. Misalnya, artikel CREATE TRIGGER tersedia di SQL Database. Tetapi opsi ALL SERVER untuk pemicu tingkat server, menunjukkan bahwa pemicu tingkat server tidak dapat digunakan dalam SQL Database. Gunakan pemicu tingkat database sebagai gantinya.