rozdíly T-SQL mezi SQL Server a Azure SQL Database

při migraci databáze z SQL Server do Azure SQL Database můžete zjistit, že vaše SQL Server databáze vyžadují před migrací nějaké přepracovanou metodologii. V tomto článku najdete pokyny, které vám pomůžou při provádění tohoto přetváření a porozumění základním důvodům, proč je nutné je znovu inženýrovat. k detekci nekompatibility a migraci databází do Azure SQL Database použijte datový Pomocník s migrací (DMA).

Přehled

většina funkcí T-SQL používaných aplikacemi je plně podporovaná v Microsoft SQL Server i Azure SQL Database. například základní SQL komponenty, jako jsou datové typy, operátory, řetězce, aritmetické funkce, logické a kurzorové funkce fungují stejně v SQL Server a SQL Database. existuje však několik rozdílů t-SQL v elementech DDL (data definition language) a DML (data pro manipulaci s daty), které jsou výsledkem příkazů T-SQL a dotazů, které jsou podporovány pouze částečně (což se zabývá dále v tomto článku).

kromě toho existují některé funkce a syntaxe, které nejsou vůbec podporovány, protože Azure SQL Database jsou určeny k izolaci funkcí ze závislostí v systémových databázích a operačním systému. Většina funkcí na úrovni instance se v SQL Database nepodporuje. příkazy T-SQL a možnosti 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 tyto možnosti požadovány, je vhodná alternativa často k dispozici jiným způsobem než SQL Database nebo z jiné funkce nebo služby Azure.

Například vysoká dostupnost je integrována do Azure SQL Database. příkazy T-SQL související se skupinami dostupnosti nejsou podporovány nástrojem SQL Database a zobrazení dynamické správy související se skupinami dostupnosti Always On nejsou také podporována.

seznam funkcí, které jsou v SQL Database podporované a nepodporované, najdete v článku porovnání funkcí 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ána.

  • v SQL Server CREATE DATABASE a ALTER DATABASE příkazy mají více než tři desítkové možnosti. Příkazy zahrnují možnosti umístění souborů, FILESTREAM a Service Broker, které platí pouze pro SQL Server. to nemusí být v souvislosti s tím, že v SQL Database vytvoříte databáze před migrací, ale pokud migrujete kód T-SQL, který vytváří databáze, měli byste při vytváření databáze (SQL Server T-SQL) Azure SQL Database porovnat SQL Server syntaxí, abyste měli jistotu, že se podporují všechny možnosti, které používáte. CREATE DATABASEpro Azure SQL Database má také možnosti cíl služby a elastický fond, které platí pouze pro SQL Database.
  • CREATE TABLEpříkazy a ALTER TABLE mají FILETABLE a FILESTREAM možnosti, které nelze použít na SQL Database, protože tyto funkce nejsou podporovány.
  • CREATE LOGIN``ALTER LOGINpříkazy a jsou podporovány, ale nenabízejí všechny možnosti, které jsou k dispozici v SQL Server. aby byla databáze lépe přenosná, 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ématech Vytvoření přihlašovacích údajů a Změna přihlášení a Správa přihlášení a uživatelů.

syntaxe T-SQL není v Azure SQL Database podporovaná.

kromě příkazů T-SQL souvisejících s nepodporovanými funkcemi popsanými v Azure SQL Database porovnávání funkcínejsou podporovány následující příkazy a skupiny příkazů. pokud vaše databáze, která má být migrována, používá některou z následujících funkcí, proveďte znovu inženýr své aplikace, abyste vyloučili tyto funkce T-SQL a příkazy.

  • Kolace systémových objektů.
  • Související s připojením: příkazy Endpoint. SQL Database nepodporuje ověřování Windows, ale podporuje Azure Active Directory ověřování. To zahrnuje ověřování objektů zabezpečení služby Active Directory federovaných s Azure Active Directory. další informace najdete v tématu připojení k SQL Database nebo azure azure Synapse Analytics pomocí ověřování Azure Active Directory.
  • Dotazy mezi databázemi a mezi instancemi, které používají tři nebo čtyři názvy částí. Podporují se tři názvy částí, které odkazují na tempdb databázi a aktuální databázi. Elastický dotaz podporuje v tabulkách v jiných databázích MSSQL odkazy jen pro čtení.
  • Řetězení vlastnictví mezi databázemi a TRUSTWORTHY databázovou vlastnost.
  • EXECUTE AS LOGIN. Místo toho použijte EXECUTE AS USER.
  • Extensible Key Management (EKM) pro šifrovací klíče. transparentní šifrování dat (TDE) klíče spravované zákazníkem a Always Encrypted hlavních klíčů sloupce mohou být uloženy v Azure Key Vault.
  • Události: oznamování událostí, oznámení dotazů.
  • Vlastnosti souboru: syntaxe vztahující se k názvu souboru databáze, umístění, velikosti a dalším vlastnostem souboru automaticky spravovaná pomocí SQL Database.
  • Vysoká dostupnost: syntaxe související s vysokou dostupností a obnovením databáze, která se spravují pomocí SQL Database. To zahrnuje syntaxi zálohování, obnovení, Always On, zrcadlení databáze, přesouvání protokolů a modelů obnovení.
  • Syntaxe vztahující se k replikaci snímků, transakcí a sloučení, která není v SQL Database k dispozici. Odběry replikace jsou podporovány.
  • Funkce: fn_get_sql , fn_virtualfilestats , fn_virtualservernodes .
  • Konfigurace instance: syntaxe týkající se paměti serveru, pracovních vláken, spřažení procesoru, příznaků trasování. Místo toho používejte úrovně služeb a výpočetní velikosti.
  • KILL STATS JOB.
  • OPENQUERY``OPENDATASOURCEa názvy čtyř částí.
  • .NET Framework: integrace CLR
  • Sémantické vyhledávání
  • Přihlašovací údaje serveru: místo toho použijte přihlašovací údaje v oboru databáze .
  • Oprávnění na úrovni serveru: GRANT , REVOKE a nejsou DENY podporovaná na úrovni serveru. Některá oprávnění na úrovni serveru se nahrazují oprávněními na úrovni databáze nebo implicitně udělená pomocí integrovaných rolí serveru. Některá zobrazení v zobrazení dynamické správy a katalogu na úrovni serveru mají podobná zobrazení na úrovni databáze.
  • SET REMOTE_PROC_TRANSACTIONS
  • SHUTDOWN
  • sp_addmessage
  • sp_configure a RECONFIGURE . Je podporována konfigurace s rozsahem změny databáze .
  • sp_helpuser
  • sp_migrate_user_to_contained
  • SQL Server agent: syntaxe, která spoléhá na agenta SQL Server nebo databázi MSDB: výstrahy, operátory a servery centrální správy. Místo toho použijte skripty, jako je PowerShell.
  • SQL Server audit: místo toho použijte auditování SQL Database.
  • SQL Server trasování.
  • Příznaky trasování.
  • ladění T-SQL.
  • Aktivační události v rozsahu serveru nebo přihlášení.
  • USE příkaz: Chcete-li změnit kontext databáze na jinou databázi, je nutné vytvořit nové připojení k této databázi.

úplný odkaz na T-SQL

další informace o gramatice t-SQL gramatikě, použití a příkladech naleznete v tématu t-SQL Reference (databázový stroj).

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

odkaz T-SQL zahrnuje články týkající se všech nejnovějších verzí SQL Server. Pod nadpisem článku najdete panel ikon, výpis platforem MSSQL a indikace použitelnosti. Například skupiny dostupnosti byly zavedeny v SQL Serveru 2012. článek vytvořit skupinu dostupnosti označuje, že se příkaz vztahuje na SQL Server (počínaje 2012). příkaz se nevztahuje na SQL Server 2008, SQL Server 2008 R2, Azure SQL Database, azure azure Synapse Analytics nebo paralelní datový sklad.

V některých případech je možné v produktu použít obecný předmět článku, ale existují drobné rozdíly mezi produkty. Rozdíly jsou podle potřeby uvedeny v různých umístěních v článku. Například CREATE TRIGGER článek je k dispozici v SQL Database. Ale ALL SERVER možnost pro aktivační události na úrovni serveru označuje, že triggery na úrovni serveru nejde použít v SQL Database. Místo toho použijte triggery na úrovni databáze.

Další kroky

seznam funkcí, které jsou v SQL Database podporované a nepodporované, najdete v článku porovnání funkcí Azure SQL Database.

k detekci potíží s kompatibilitou ve vašich databázích SQL Server před migrací na Azure SQL Database a migrace databází použijte datový Pomocník s migrací (DMA).