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

Amikor az adatbázist SQL Server-ról Azure SQL Database-re migrálja, felfedezheti, hogy a SQL Server-adatbázisok áttelepítése előtt újratervezésre van szükség. Ez a cikk útmutatást nyújt az újratervezés végrehajtásához és az újratervezés alapjául szolgáló okok megértéséhez. Az inkompatibilitások észleléséhez és az adatbázisok Azure SQL Database való migrálásához használja a Data Migration Assistant (DMA) parancsot.

Áttekintés

Az alkalmazások által használt legtöbb T-SQL-funkció teljes mértékben támogatott Microsoft SQL Server és Azure SQL Database. Az alapvető SQL összetevők, például az adattípusok, operátorok, sztringek, aritmetikai, logikai és kurzorfüggvények például azonos módon működnek SQL Server és SQL Database. Van azonban néhány T-SQL különbség a DDL (adatdefiníciós nyelv) és a DML (adatmanipulációs nyelv) elemeiben, 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 ismertetünk).

Emellett vannak olyan funkciók és szintaxisok, amelyek egyáltalán nem támogatottak, mivel a 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 való függőségektől. Ezért a legtöbb példányszintű funkció nem támogatott a SQL Database. 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ájlrendszer-konfigurációt konfigurálnak. Ha ilyen képességekre van szükség, egy megfelelő alternatíva gyakran más módon is elérhető SQL Database 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 Azure SQL Database. A rendelkezésre állási csoportokkal kapcsolatos T-SQL-utasításokat a 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.

A SQL Database által támogatott és nem támogatott szolgáltatások listáját Azure SQL Database szolgáltatások ö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 szintaktikai utasítások részleges eltérésekkel

Az alapvető DDL-utasítások elérhetők, de a nem támogatott funkciókhoz kapcsolódó DDL-utasításbővítmények, például a fájlok lemezen való elhelyezése nem támogatottak.

  • Az SQL Server CREATE DATABASE és ALTER DATABASE az utasítások több mint három tucat lehetőséget kínálnak. Az utasítások közé tartoznak a fájlelhelyezési, a FILESTREAM- és a szolgáltatásközvetítői beállítások, amelyek csak a SQL Server vonatkoznak. Ez nem számít, ha a migrálás előtt adatbázisokat hoz létre SQL Database, de ha adatbázisokat létrehozó T-SQL-kódot migrál, akkor a CREATE DATABASE (Azure SQL Database) függvényt hasonlítsa össze a CREATE DATABASE (SQL Server T-SQL) SQL Server szintaxisával. lehetőséget, hogy az összes használt beállítás támogatott legyen. CREATE DATABASEAzure SQL Database olyan szolgáltatási célkitűzési és rugalmas készletbeállításokkal is rendelkezik, amelyek csak a SQL Database vonatkoznak.
  • Az CREATE TABLE és ALTER TABLE az utasítások olyan beállításokkal rendelkeznekFILETABLE, amelyek FILESTREAM nem használhatók SQL Database, mert ezek a funkciók nem támogatottak.
  • CREATE LOGINés ALTER LOGIN az utasítások támogatottak, de nem kínálnak minden elérhető lehetőséget SQL Server. Az adatbázis hordozhatóbbá tétele érdekében SQL Database a tartalmazottadatbázis-felhasználók használatát javasolja bejelentkezések helyett, amikor csak lehetséges. További információ: CREATE LOGIN and ALTER LOGIN and Manage logins and users.

A T-SQL szintaxis nem támogatott a Azure SQL Database

A Azure SQL Database funkció-összehasonlításban 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. Ezért ha az áttelepítendő adatbázis az alábbi funkciók bármelyikét használja, tervezzen újra az alkalmazást, hogy kiküszöbölje ezeket a T-SQL szolgáltatásokat és utasításokat.

  • Rendszerobjektumok rendezése.
  • Kapcsolattal kapcsolatos: Végponti utasítások. SQL Database nem támogatja Windows hitelesítést, de támogatja Azure Active Directory hitelesítést. Ebbe beletartozik a Azure Active Directory összevont Active Directory-tagok hitelesítése is. További információ: Csatlakozás az SQL Database-hez vagy az Azure Azure Synapse Analyticshez Azure Active Directory-hitelesítés használatával.
  • Adatbázisközi és példányközi lekérdezések három vagy négy részből álló névvel. Az adatbázisra és az tempdb aktuális adatbázisra hivatkozó három résznév támogatott. A rugalmas lekérdezések más MSSQL-adatbázisok tábláira mutató írásvédett hivatkozásokat támogatnak.
  • Adatbázis tulajdonjogának láncolása é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. transzparens adattitkosítás (TDE) ügyfél által felügyelt kulcsokat és Always Encrypted oszlop főkulcsait az Azure Key Vault tárolhatja.
  • Esemény: eseményértesítések, lekérdezési értesítések.
  • Fájltulajdonságok: Az adatbázisfájl nevével, elhelyezésével, méretével és más, SQL Database által automatikusan kezelt fájltulajdonságokkal kapcsolatos szintaxis.
  • Magas rendelkezésre állás: A magas rendelkezésre álláshoz és az adatbázis-helyreállításhoz kapcsolódó szintaxis, amelyet SQL Database kezel. 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óátvitel és a helyreállítási modellek szintaxisát.
  • A pillanatképhez, a tranzakciós és az egyesítési replikációhoz kapcsolódó szintaxis, amely nem érhető el SQL Database. 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ószálak, a CPU-affinitás és a nyomkövetési jelzők szintaxisa. Használjon inkább szolgáltatási szinteket és számítási méreteket.
  • KILL STATS JOB.
  • OPENQUERY, OPENDATASOURCEés négyrészes nevek.
  • .NET-keretrendszer: CLR-integráció
  • Szemantikus keresés
  • Kiszolgálói hitelesítő adatok: Használjon inkább adatbázis-hatókörön belüli 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, 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ÖN BELÜLI KONFIGURÁCIÓ támogatott.
  • sp_helpuser
  • sp_migrate_user_to_contained
  • SQL Server Agent: A SQL Server Agent vagy az MSDB-adatbázisra támaszkodó szintaxis: riasztások, operátorok, központi felügyeleti kiszolgálók. Használjon inkább szkripteket, például a PowerShellt.
  • SQL Server naplózás: Használja inkább SQL Database naplózást.
  • 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, új kapcsolatot kell létrehoznia 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 összes legutóbbi SQL Server verzióval kapcsolatos cikket 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 (RENDELKEZÉSRE ÁLLÁSI CSOPORT LÉTREHOZÁSA) című cikk azt jelzi, hogy az utasítás a SQL Server vonatkozik (2012-től kezdve). Az utasítás nem vonatkozik a SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, az Azure Azure Synapse Analytics vagy a Parallel Data Warehouse.

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 cikk középpontjainál jelezzük, ha szükséges. A cikk például CREATE TRIGGER SQL Database érhető el. ALL SERVER A 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 SQL Database. Használjon inkább adatbázisszintű eseményindítókat.

Következő lépések

A SQL Database által támogatott és nem támogatott szolgáltatások listáját Azure SQL Database szolgáltatások összehasonlításában találja.

A SQL Server-adatbázisok kompatibilitási problémáinak észleléséhez a Azure SQL Database való migrálás előtt és az adatbázisok migrálásához használja a Data Migration Assistant (DMA) parancsot.