T-SQL-különbségek az SQL Server és az Azure SQL Database között
Amikor migrálja az adatbázist az SQL Serverről az Azure SQL Database-be, felfedezheti, hogy az SQL Server-adatbázisok újratervezést igényelnek, mielőtt migrálhatók lennének. Ez a cikk útmutatást nyújt az újratervezés végrehajtásához, valamint annak megértéséhez, hogy miért van szükség az újratervezésre. Az inkompatibilitások észleléséhez és az adatbázisok Azure SQL Database-be való migrálásához használja a Data Migration Assistantet (DMA).
Megjegyzés:
A Microsoft Entra ID az Azure Active Directory (Azure AD) új neve. Jelenleg frissítjük a dokumentációt.
Áttekintés
Az alkalmazások által használt legtöbb T-SQL-funkció teljes mértékben támogatott mind a Microsoft SQL Serverben, mind az Azure SQL Database-ben. Az alapvető SQL-összetevők, például az adattípusok, operátorok, sztringek, számtani, logikai és kurzorfüggvények például azonos módon működnek az SQL Serverben és az SQL Database-ben. A DDL (adatdefiníció nyelve) és a DML (adatmanipulációs nyelv) elemei között azonban van néhány T-SQL-eltérés, amelyek csak részben támogatott T-SQL-utasításokat és lekérdezéseket eredményeznek (amelyeket a cikk későbbi részében tárgyalunk).
Emellett vannak olyan funkciók és szintaxisok is, amelyek egyáltalán nem támogatottak, mivel az Azure SQL Database úgy lett kialakítva, hogy elkülönítse a funkciókat a rendszeradatbázisoktól és az operációs rendszertől. Ezért a legtöbb példányszintű funkció nem támogatott az SQL Database-ben. A T-SQL-utasítások és -beállítások nem érhetők el, ha példányszintű beállításokat, operációsrendszer-összetevőket vagy fájlrendszerkonfigurációt konfigurálnak. Ha ilyen képességekre van szükség, a megfelelő alternatíva gyakran más módon érhető el az SQL Database-ből vagy egy másik Azure-szolgáltatásból vagy szolgáltatásból.
A magas rendelkezésre állás például be van építve az Azure SQL Database-be. A rendelkezésre állási csoportokhoz kapcsolódó T-SQL-utasításokat az SQL Database nem támogatja, és az Always On rendelkezésre állási csoportokkal kapcsolatos dinamikus felügyeleti nézetek szintén nem támogatottak.
Az SQL Database által támogatott és nem támogatott funkciók listáját az Azure SQL Database szolgáltatás-összehasonlításában találja. Ez az oldal kiegészíti ezt a cikket, és a T-SQL-utasításokra összpontosít.
T-SQL szintaxis utasítások részleges eltérésekkel
Az alapvető DDL-utasítások elérhetők, de a nem támogatott funkciókhoz, például a lemezen való fájlelhelyezéshez kapcsolódó DDL-utasításbővítmények nem támogatottak.
- Az SQL Serverben
CREATE DATABASE
azALTER DATABASE
utasításoknak több mint három tucat lehetősége van. Az utasítások közé tartoznak a fájlelhelyezési, a FILESTREAM- és a szolgáltatásközvetítői lehetőségek, amelyek csak az SQL Serverre vonatkoznak. Ez nem feltétlenül számít, ha migrálás előtt adatbázisokat hoz létre az SQL Database-ben, de ha adatbázisokat létrehozó T-SQL-kódot migrál, hasonlítsa össze a CREATE DATABA Standard kiadás (Azure SQL Database) és a CREATE DATABA Standard kiadás(SQL Server T-SQL) SQL Server-szintaxissal, hogy minden használt beállítás támogatott legyen.CREATE DATABASE
az Azure SQL Database szolgáltatáscélokkal és rugalmas készletbeállításokkal is rendelkezik, amelyek csak az SQL Database-re vonatkoznak. - Az
CREATE TABLE
utasítások ésALTER TABLE
utasítások olyan beállításokkal rendelkeznekFILETABLE
,FILESTREAM
amelyek nem használhatók az SQL Database-ben, mert ezek a funkciók nem támogatottak. CREATE LOGIN
ésALTER LOGIN
az utasítások támogatottak, de az SQL Serverben elérhető összes lehetőséget nem kínálják. Az adatbázis hordozhatóbbá tétele érdekében az SQL Database a bejelentkezések helyett a tartalmazott adatbázis-felhasználók használatát javasolja, amikor csak lehetséges. További információ: CREATE LOGIN and ALTER LOGIN and Manage logins and users.
Az Azure SQL Database-ben nem támogatott T-SQL-szintaxis
Az Azure SQL Database szolgáltatás-összehasonlításában ismertetett nem támogatott funkciókhoz kapcsolódó T-SQL-utasítások mellett az alábbi utasítások és utasításcsoportok nem támogatottak. Így ha az áttelepítendő adatbázis az alábbi funkciók bármelyikét használja, az alkalmazás újratervezője, hogy kiküszöbölje ezeket a T-SQL-funkciókat és -utasításokat.
- Rendszerobjektumok rendezése.
- Csatlakozás kapcsolódó: Végponti utasítások. Az SQL Database nem támogatja a Windows-hitelesítést, de támogatja a Microsoft Entra-hitelesítést. Ez magában foglalja a Microsoft Entra-azonosítóval összevont Active Directory-tagok hitelesítését (korábbi nevén Azure Active Directory). További információ: Csatlakozás az SQL Database-be vagy az Azure Azure Synapse Analyticsbe Microsoft Entra-hitelesítéssel.
- Adatbázisközi és példányközi lekérdezések három vagy négy résznév használatával. Az adatbázisra és az
tempdb
aktuális adatbázisra hivatkozó három résznév támogatott. A rugalmas lekérdezés más MSSQL-adatbázisok tábláira mutató írásvédett hivatkozásokat támogat. - Adatbázis-tulajdonjogok közötti láncolás és az
TRUSTWORTHY
adatbázistulajdonság. EXECUTE AS LOGIN
. UseEXECUTE AS USER
instead.- Bővíthető kulcskezelés (EKM) titkosítási kulcsokhoz. transzparens adattitkosítás (TDE) ügyfél által felügyelt kulcsok és Always Encrypted oszlop főkulcsai tárolhatók az Azure Key Vaultban.
- Esemény: eseményértesítések, lekérdezési értesítések.
- Fájltulajdonságok: Az SQL Database által automatikusan felügyelt adatbázis-fájlnévhez, elhelyezéshez, mérethez és egyéb fájltulajdonságokhoz kapcsolódó szintaxis.
- Magas rendelkezésre állás: Az SQL Database által felügyelt magas rendelkezésre álláshoz és adatbázis-helyreállításhoz kapcsolódó szintaxis. Ez magában foglalja a biztonsági mentés, a visszaállítás, az Always On, az adatbázis-tükrözés, a naplószállítás, a helyreállítási modellek szintaxisát.
- Az SQL Database-ben nem elérhető pillanatképhez, tranzakciós és egyesítési replikációhoz kapcsolódó szintaxis. A replikációs előfizetések támogatottak.
- Függvények:
fn_get_sql
,fn_virtualfilestats
.fn_virtualservernodes
- Példánykonfiguráció: A kiszolgálómemória, a feldolgozói szálak, a CPU-affinitás és a nyomkövetési jelzők szintaxisa. Használja inkább a szolgáltatási szinteket és a számítási méreteket.
KILL STATS JOB
.OPENQUERY
,OPENDATASOURCE
és négyrészes nevek.- .NET-keretrendszer: CLR-integráció
- Szemantikai keresés
- Kiszolgálói hitelesítő adatok: Használja inkább az adatbázis hatókörébe tartozó hitelesítő adatokat .
- A kiszolgálószintű engedélyek:
GRANT
,REVOKE
ésDENY
a kiszolgálószintű engedélyek nem támogatottak. Egyes kiszolgálószintű engedélyeket adatbázisszintű engedélyek váltanak fel, vagy implicit módon a beépített kiszolgálói szerepkörök adják meg. Egyes kiszolgálószintű DMV-k és katalógusnézetek hasonló adatbázisszintű nézetekkel rendelkeznek. SET REMOTE_PROC_TRANSACTIONS
SHUTDOWN
sp_addmessage
sp_configure
ésRECONFIGURE
. AZ ALTER DATABA Standard kiadás HATÓKÖRALAPÚ KONFIGURÁCIÓ támogatott.sp_helpuser
sp_migrate_user_to_contained
- SQL Server-ügynök: Az SQL Server-ügynökre vagy az
msdb
adatbázisra támaszkodó szintaxis: riasztások, operátorok, központi felügyeleti kiszolgálók. Használjon inkább szkriptelést, például a PowerShellt. - SQL Server-naplózás: Használja helyette az SQL Database naplózását .
- SQL Server-nyomkövetés.
- Nyomkövetési jelzők.
- T-SQL hibakeresés.
- Kiszolgálói hatókörű vagy bejelentkezési eseményindítók.
USE
utasítás: Ha az adatbázis környezetét egy másik adatbázisra szeretné módosítani, létre kell hoznia egy új kapcsolatot az adatbázissal.
Teljes T-SQL-referencia
A T-SQL nyelvhelyességéről, használatáról és példáiról további információt a T-SQL-referencia (adatbázismotor) című témakörben talál.
Az „Érvényes” címkék
A T-SQL-referencia az SQL Server legújabb verzióival kapcsolatos cikkeket tartalmaz. A cikk címe alatt található egy ikonsáv, amely az MSSQL-platformokat sorolja fel, és az alkalmazhatóságot jelzi. A rendelkezésre állási csoportok például az SQL Server 2012-ben jelentek meg. A CREATE AVAILABILITY GROUP cikk azt jelzi, hogy az utasítás az SQL Serverre vonatkozik (2012-től kezdődően). Az utasítás nem vonatkozik az SQL Server 2008, az SQL Server 2008 R2, az Azure SQL Database, az Azure Azure Synapse Analytics vagy a Parallel Data Warehouse szolgáltatásra.
Bizonyos esetekben a cikk általános tárgya használható egy termékben, de a termékek között kisebb különbségek vannak. A különbségeket a cikkben szereplő pontoknál jelezzük, ha szükséges. A cikk például CREATE TRIGGER
az SQL Database-ben érhető el. A ALL SERVER
kiszolgálószintű eseményindítók beállítása azonban azt jelzi, hogy a kiszolgálószintű eseményindítók nem használhatók az SQL Database-ben. Használjon inkább adatbázisszintű eseményindítókat.
További lépések
Az SQL Database által támogatott és nem támogatott funkciók listáját az Azure SQL Database szolgáltatás-összehasonlításában találja.
Az SQL Server-adatbázisok kompatibilitási problémáinak észleléséhez az Azure SQL Database-be való migrálás előtt, valamint az adatbázisok migrálásához használja a Data Migration Assistant (DMA) alkalmazást.