Rozdíly mezi SQL Serverem a Službou Azure SQL Database

Při migraci databáze z SQL Serveru do Služby Azure SQL Database můžete zjistit, že vaše databáze SQL Serveru před migrací vyžadují určitou opětovnou přípravu. Tento článek obsahuje pokyny, které vám pomůžou s prováděním tohoto opětovného inženýrství a pochopením základních důvodů, proč je potřeba přepracovat. Pokud chcete zjistit nekompatibilitu a migrovat databáze do služby Azure SQL Database, použijte data Pomocník s migrací (DMA).

Poznámka:

ID Microsoft Entra se dříve označovalo jako Azure Active Directory (Azure AD).

Přehled

Většina funkcí T-SQL, které aplikace používají, jsou plně podporovány v Microsoft SQL Serveru i Azure SQL Database. Například základní komponenty SQL, jako jsou datové typy, operátory, řetězce, aritmetické, logické a kurzorové funkce, fungují stejně v SQL Serveru a SQL Database. Existuje však několik rozdílů jazyka T-SQL v prvcích DDL (jazyk definice dat) a DML (jazyk pro manipulaci s daty), což vede k příkazům a dotazům jazyka T-SQL, které jsou podporované pouze částečně (které probereme dále v tomto článku).

Kromě toho existují některé funkce a syntaxe, které se vůbec nepodporují, protože Azure SQL Database je navržený tak, aby izoloval funkce od závislostí na systémových databázích a operačním systému. Většina funkcí na úrovni instance se proto ve službě SQL Database nepodporuje. Příkazy a možnosti T-SQL nejsou k dispozici, pokud konfigurují možnosti na úrovni instance, součásti operačního systému nebo určují konfiguraci systému souborů. Pokud jsou takové možnosti potřeba, je vhodná alternativa často k dispozici jiným způsobem ze služby SQL Database nebo z jiné funkce nebo služby Azure.

Vysoká dostupnost je například integrovaná do Azure SQL Database. Sql Database nepodporuje příkazy T-SQL související se skupinami dostupnosti a zobrazení dynamické správy související se skupinami dostupnosti AlwaysOn se také nepodporují.

Seznam podporovaných a nepodporovaných funkcí ve službě SQL Database najdete v tématu Porovnání funkcí služby Azure SQL Database. Tato stránka doplňuje tento článek a zaměřuje se na příkazy T-SQL.

Příkazy syntaxe T-SQL s částečnými rozdíly

Základní příkazy DDL jsou k dispozici, ale rozšíření příkazů DDL související s nepodporovanými funkcemi, jako je umístění souboru na disku, nejsou podporovány.

  • V SQL Serveru CREATE DATABASE a ALTER DATABASE příkazy mají více než tři desítky možností. Příkazy zahrnují umístění souborů, FILESTREAM a možnosti zprostředkovatele služeb, které platí pouze pro SQL Server. To nemusí být důležité, pokud vytváříte databáze v SQL Database před migrací, ale pokud migrujete kód T-SQL, který vytváří databáze, měli byste porovnat CREATE DATABASE (Azure SQL Database) se syntaxí SQL Serveru ve službě CREATE DATABASE (SQL Server T-SQL), abyste měli jistotu, že jsou podporované všechny možnosti, které používáte. CREATE DATABASE Pro Azure SQL Database má také možnosti cíle služby a elastického fondu, které platí jenom pro SLUŽBU SQL Database.
  • ALTER TABLE Příkazy CREATE TABLE mají FILETABLE a FILESTREAM možnosti, které nelze použít ve službě SQL Database, protože tyto funkce nejsou podporované.
  • CREATE LOGIN a ALTER LOGIN příkazy jsou podporované, ale nenabízejí všechny možnosti dostupné na SQL Serveru. Aby byla databáze přenosnější, SQL Database doporučuje používat uživatele databáze s omezením místo přihlášení, kdykoli je to možné. Další informace najdete v tématu CREATE LOGIN a ALTER LOGIN a Správa přihlášení a uživatelů.

Syntaxe T-SQL není ve službě Azure SQL Database podporovaná

Kromě příkazů T-SQL souvisejících s nepodporovanými funkcemi popsanými v porovnání funkcí Azure SQL Database se nepodporují následující příkazy a skupiny příkazů. Pokud například vaše databáze, která se má migrovat, používá některou z následujících funkcí, překonstruujte aplikaci, abyste tyto funkce a příkazy T-SQL eliminovali.

  • Kolace systémových objektů
  • Připojení související: příkazy koncového bodu. SQL Database nepodporuje ověřování systému Windows, ale podporuje ověřování Microsoft Entra. To zahrnuje ověřování objektů zabezpečení Active Directory federovaných s ID Microsoft Entra (dříve Azure Active Directory). Další informace najdete v tématu Připojení pro SQL Database nebo Azure Synapse Analytics pomocí ověřování Microsoft Entra.
  • Dotazy napříč databázemi a křížovými instancemi používající tři nebo čtyři názvy částí. Podporují se tři názvy částí odkazující tempdb na databázi a aktuální databázi. Elastický dotaz podporuje odkazy jen pro čtení na tabulky v jiných databázích MSSQL.
  • Řetězení vlastnictví mezi databázemi a TRUSTWORTHY vlastnost databáze.
  • EXECUTE AS LOGIN. Místo toho použijte EXECUTE AS USER.
  • Rozšiřitelná správa klíčů (EKM) pro šifrovací klíče transparentní šifrování dat klíče spravované zákazníkem a hlavní klíče sloupců Always Encrypted můžou být uložené ve službě Azure Key Vault.
  • Vytváření událostí: oznámení událostí, oznámení dotazů.
  • Vlastnosti souboru: Syntaxe související s názvem databázového souboru, umístěním, velikostí a dalšími vlastnostmi souboru automaticky spravované službou SQL Database.
  • Vysoká dostupnost: Syntaxe související s vysokou dostupností a obnovením databáze spravované službou SQL Database. To zahrnuje syntaxi zálohování, obnovení, AlwaysOn, zrcadlení databáze, přesouvání protokolů, modely obnovení.
  • Syntaxe související se snímkem, transakční a slučovací replikací, která není dostupná ve službě SQL Database. Podporují se předplatná replikace.
  • Funkce: fn_get_sql, fn_virtualfilestats, fn_virtualservernodes.
  • Konfigurace instance: Syntaxe související s pamětí serveru, pracovními vlákny, spřažením procesoru, příznaky trasování. Místo toho používejte úrovně služeb a velikosti výpočetních prostředků.
  • KILL STATS JOB.
  • OPENQUERY, OPENDATASOURCEa čtyřdílné názvy.
  • .NET Framework: Integrace CLR
  • Sémantické vyhledávání
  • Přihlašovací údaje serveru: Místo toho použijte přihlašovací údaje s vymezeným oborem databáze.
  • Oprávnění na úrovni serveru: GRANT, REVOKEa DENY oprávnění na úrovni serveru nejsou podporována. Některá oprávnění na úrovni serveru jsou nahrazena oprávněními na úrovni databáze nebo implicitně udělena předdefinovanými rolemi serveru. Některá zobrazení dynamické správy na úrovni serveru a zobrazení katalogu mají podobná zobrazení na úrovni databáze.
  • SET REMOTE_PROC_TRANSACTIONS
  • SHUTDOWN
  • sp_addmessage
  • sp_configure a RECONFIGURE. PODPORUJE SE KONFIGURACE ALTER DATABASE SCOPED .
  • sp_helpuser
  • sp_migrate_user_to_contained
  • Agent SQL Serveru: Syntaxe, která závisí na agentu SQL Serveru nebo databázi msdb : výstrahy, operátory, centrální servery pro správu. Místo toho použijte skriptování, například PowerShell.
  • Audit SQL Serveru: Místo toho použijte auditování služby SQL Database.
  • Trasování SQL Serveru
  • Příznaky trasování.
  • Ladění T-SQL
  • Triggery pro přihlášení nebo serverové triggery.
  • USE příkaz: Chcete-li změnit kontext databáze na jinou databázi, musíte vytvořit nové připojení k této databázi.

Úplné referenční informace k jazyku T-SQL

Další informace o gramatikě, použití a příkladech jazyka T-SQL najdete v tématu Referenční informace k jazyku T-SQL (databázový stroj).

Informace o značkách „Platí pro“

Referenční informace jazyka T-SQL obsahují články týkající se všech nedávných verzí SQL Serveru. Pod názvem článku je panel ikon se seznamem platforem MSSQL a označující použitelnost. Například skupiny dostupnosti byly zavedeny v SQL Serveru 2012. Článek CREATE AVAILABILITY GROUP indikuje, že příkaz platí pro SQL Server (počínaje verzí 2012). Příkaz se nevztahuje na SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, Azure Synapse Analytics nebo Paralelní datový sklad.

V některých případech lze v produktu použít obecný předmět článku, ale mezi produkty existují menší rozdíly. Rozdíly jsou uvedené na středových bodech článku podle potřeby. Například článek je k dispozici ve službě CREATE TRIGGER SQL Database. ALL SERVER Možnost pro triggery na úrovni serveru ale značí, že triggery na úrovni serveru se v SQL Database nedají použít. Místo toho použijte triggery na úrovni databáze.

Další kroky

Seznam podporovaných a nepodporovaných funkcí ve službě SQL Database najdete v tématu Porovnání funkcí služby Azure SQL Database.

Pokud chcete zjistit problémy s kompatibilitou v databázích SQL Serveru před migrací do služby Azure SQL Database a migrovat databáze, použijte data Pomocník s migrací (DMA).