Megosztás a következőn keresztül:


T-SQL-különbségek az SQL Server és az Azure SQL Database között

Amikor az adatbázist SQL Serverről Azure SQL Database-re migrálja, felfedezheti, hogy az SQL Server-adatbázisok újratervezést igényelnek a migrálásuk előtt. 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 az Azure Data Migration Service-t.

Megjegyzés:

A Microsoft Entra ID-t korábban Azure Active Directorynak (Azure AD) nevezték.

Áttekintés

Az alkalmazások által használt legtöbb Transact-SQL (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 a Szolgáltatások összehasonlítása című témakörben találja : Azure SQL Database és Felügyelt Azure SQL-példány. 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 az ALTER 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 a 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, akkor a CREATE DATABASE (Azure SQL Database) és a CREATE DATABASE (SQL Server T-SQL) SQL Server szintaxisával kell összehasonlítani, 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 és ALTER TABLE utasítások olyan beállításokkal rendelkeznek FILETABLE , FILESTREAM amelyek nem használhatók az SQL Database-ben, mert ezek a funkciók nem támogatottak.
  • Nem támogatott felhasználói objektumok, például táblák, nézetek vagy tárolt eljárások létrehozása, módosítása vagy elvetése a megfelelő CREATE, ALTERés DROP utasítások használatával az adatbázisban egy masterlogikai kiszolgálón .
  • CREATE LOGIN és ALTER LOGIN az utasítások támogatottak, de ne kínálják az SQL Serverben elérhető összes lehetőséget. 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, ALTER LOGIN, and Authorize database access to SQL Database, SQL Managed Instance, and Azure Synapse Analytics.

Az Azure SQL Database-ben nem támogatott T-SQL-szintaxis

Az Azure SQL Database és a felügyelt Azure SQL-példány nem támogatott funkcióihoz 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.
  • Kapcsolattal kapcsolatos: 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. További információ: Microsoft Entra-hitelesítés az Azure SQL-hez.
  • 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. A EXECUTE AS USER használható helyette.
  • Bővíthető kulcskezelés (EKM) titkosítási kulcsokhoz. Az ügyfél által felügyelt transzparens adattitkosítási (TDE) kulcsok és az Always Encrypted oszlop főkulcsai az Azure Key Vaultban tárolhatók.
  • 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: közös nyelvi futtatókörnyezet (CLR) integrációja
  • 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és DENY 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 és RECONFIGURE. Az ALTER DATABASE HATÓKÖRŰ 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 Transact-SQL referencia (adatbázismotor) című témakörben talál.

Tudnivalók a "Vonatkozik" címkékről

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 csoportokat például az SQL Server 2012-ben vezették be. 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 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.