Differenze T-SQL tra SQL Server e database SQL di Azure

Quando si esegue la migrazione del database da SQL Server a database SQL di Azure, è possibile che i database di SQL Server richiedano una riprogettura prima di poter eseguire la migrazione. Questo articolo offre indicazioni utili per eseguire la riprogettazione e capire i motivi che la rendono necessaria. Per rilevare incompatibilità ed eseguire la migrazione di database a database SQL di Azure, usare Data Migration Assistant (DMA).

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

Panoramica

La maggior parte delle funzionalità T-SQL usate dalle applicazioni è completamente supportata sia in Microsoft SQL Server che in database SQL di Azure. Ad esempio, i componenti SQL di base, ad esempio tipi di dati, operatori, string, aritmetici, logici e funzioni cursori funzionano in modo identico in SQL Server e database SQL. Esistono tuttavia alcune differenze T-SQL negli elementi DDL (linguaggio di definizione dei dati) e DML (linguaggio di manipolazione dei dati) che generano istruzioni e query T-SQL supportate solo parzialmente (descritte più avanti in questo articolo).

Inoltre, esistono alcune funzionalità e una sintassi che non sono affatto supportate perché database SQL di Azure è progettato per isolare le funzionalità dalle dipendenze dai database di sistema e dal sistema operativo. Di conseguenza, la maggior parte delle funzionalità a livello di istanza non è supportata in database SQL. Le istruzioni e le opzioni T-SQL non sono disponibili se configurano opzioni a livello di istanza, componenti del sistema operativo o specificano la configurazione del file system. Quando sono necessarie tali funzionalità, spesso è disponibile un'alternativa appropriata dal database SQL o da un'altra funzionalità o un altro servizio di Azure.

Ad esempio, la disponibilità elevata è incorporata in database SQL di Azure. Le istruzioni T-SQL relative ai gruppi di disponibilità non sono supportate dal database SQL, così come le viste a gestione dinamica correlate ai gruppi di disponibilità AlwaysOn.

Per un elenco delle funzionalità supportate e non supportate dal database SQL, vedere Confronto fra le funzionalità del database SQL di Azure. Questa pagina integra questo articolo e si concentra sulle istruzioni T-SQL.

Istruzioni di sintassi T-SQL con differenze parziali

Le istruzioni DDL principali sono disponibili, ma le estensioni delle istruzioni DDL correlate alle funzionalità non supportate, ad esempio il posizionamento dei file su disco, non sono supportate.

  • In SQL Server CREATE DATABASE e ALTER DATABASE le istruzioni hanno più di tre dozzine di opzioni. Le istruzioni includono le opzioni di posizionamento dei file, FILESTREAM e service broker che si applicano solo a SQL Server. Questo potrebbe non importare se si creano database in database SQL prima della migrazione, ma se si esegue la migrazione del codice T-SQL che crea database è consigliabile confrontare CREATE DATABA edizione Standard (database SQL di Azure) con la sintassi di SQL Server in CREATE DATABA edizione Standard (SQL Server T-SQL) per assicurarsi che tutte le opzioni usate siano supportate. CREATE DATABASEper database SQL di Azure dispone anche di opzioni relative all'obiettivo di servizio e al pool elastico che si applicano solo alle database SQL.
  • Le CREATE TABLE istruzioni e ALTER TABLE includono FILETABLE opzioni e FILESTREAM che non possono essere usate in database SQL perché queste funzionalità non sono supportate.
  • CREATE LOGIN Le istruzioni e ALTER LOGIN sono supportate, ma non offrono tutte le opzioni disponibili in SQL Server. Per aumentare la portabilità del database, il database SQL invita a usare utenti contenuti nel database anziché gli account di accesso tutte le volte che è possibile. Per altre informazioni, vedere CREATE LOGIN e ALTER LOGIN e Gestire account di accesso e utenti.

Sintassi T-SQL non supportata in database SQL di Azure

Oltre alle istruzioni T-SQL correlate alle funzionalità non supportate descritte in database SQL di Azure confronto delle funzionalità, le istruzioni e i gruppi di istruzioni seguenti non sono supportati. Di conseguenza, se il database di cui eseguire la migrazione usa una delle funzionalità seguenti, ri-progettare l'applicazione per eliminare queste funzionalità e istruzioni T-SQL.

  • Regole di confronto degli oggetti di sistema.
  • Connessione correlata: istruzioni di endpoint. database SQL non supporta autenticazione di Windows, ma supporta l'autenticazione di Microsoft Entra. Ciò include l'autenticazione delle entità di sicurezza di Active Directory federate con l'ID Microsoft Entra (in precedenza Azure Active Directory). Per altre informazioni, vedere Connessione ing to database SQL or Azure Synapse Analytics By Using Microsoft Entra authentication .For more information, see Connessione to database SQL or Azure Synapse Analytics By Using Microsoft Entra authentication.
  • Query tra database e tra istanze usando tre o quattro nomi di parte. Sono supportati tre nomi di parti che fanno riferimento al tempdb database e al database corrente. La query elastica supporta riferimenti di sola lettura alle tabelle in altri database MSSQL.
  • Concatenamento tra proprietà del database e proprietà del TRUSTWORTHY database.
  • EXECUTE AS LOGIN. Utilizzare invece EXECUTE AS USER.
  • Extensible Key Management (EKM) per le chiavi di crittografia. Le chiavi gestite dal cliente EDE (Transparent Data Encryption) e le chiavi master della colonna Always Encrypted possono essere archiviate in Azure Key Vault.
  • Eventi: notifiche degli eventi, notifiche di query.
  • Proprietà file: sintassi correlata al nome del file di database, al posizionamento, alle dimensioni e ad altre proprietà del file gestite automaticamente da database SQL.
  • Disponibilità elevata: sintassi correlata alla disponibilità elevata e al ripristino del database, gestiti da database SQL. Sono incluse la sintassi per il backup, il ripristino, Always On, il mirroring del database, il log shipping, i modelli di recupero.
  • Sintassi correlata alla replica snapshot, transazionale e di tipo merge, che non è disponibile in database SQL. Sono supportate le sottoscrizioni di replica.
  • Funzioni: fn_get_sql, fn_virtualfilestats, fn_virtualservernodes.
  • Configurazione dell'istanza: sintassi correlata alla memoria del server, ai thread di lavoro, all'affinità CPU, ai flag di traccia. Usare i livelli di servizio e le dimensioni di calcolo.
  • KILL STATS JOB.
  • OPENQUERYNomi , OPENDATASOURCEe in quattro parti.
  • .NET Framework: integrazione con CLR
  • Ricerca semantica
  • Credenziali del server: usare le credenziali con ambito database.
  • Autorizzazioni a livello di server: GRANT, REVOKEe DENY delle autorizzazioni a livello di server non sono supportate. Alcune autorizzazioni a livello di server vengono sostituite da autorizzazioni a livello di database o concesse in modo implicito dai ruoli predefiniti del server. Alcune DMV a livello di server e viste del catalogo hanno viste a livello di database simili.
  • SET REMOTE_PROC_TRANSACTIONS
  • SHUTDOWN
  • sp_addmessage
  • sp_configure e RECONFIGURE. ALTER DATABA edizione Standard SCOPED CONFIGURATION è supportato.
  • sp_helpuser
  • sp_migrate_user_to_contained
  • SQL Server Agent: sintassi basata su SQL Server Agent o sul msdb database: avvisi, operatori, server di gestione centrale. Usare invece scripting, ad esempio PowerShell.
  • Controllo di SQL Server: usare invece database SQL controllo.
  • Traccia di SQL Server.
  • Flag di traccia.
  • Debug T-SQL.
  • Trigger con ambito server o di accesso.
  • USE istruzione: per modificare il contesto del database in un database diverso, è necessario creare una nuova connessione a tale database.

Informazioni di riferimento T-SQL complete

Per altre informazioni sulla grammatica, l'utilizzo e gli esempi di T-SQL, vedere Guida di riferimento T-SQL (motore di database).

Informazioni sui tag "Si applica a"

Le informazioni di riferimento su T-SQL includono articoli correlati a tutte le versioni recenti di SQL Server. Sotto il titolo dell'articolo è presente una barra delle icone, l'elenco delle piattaforme MSSQL e l'applicabilità. Ad esempio, i gruppi di disponibilità sono stati introdotti in SQL Server 2012. L'articolo CREATE AVAILABILITY GROUP indica che l'istruzione si applica a SQL Server (a partire dalla versione 2012). L'istruzione non si applica a SQL Server 2008, SQL Server 2008 R2, database SQL di Azure, Azure Synapse Analytics o Parallel Data Warehouse.

In alcuni casi, l'argomento generale di un articolo può essere usato in un prodotto, ma esistono differenze minime tra i prodotti. Le differenze sono indicate in punti centrali nell'articolo come appropriato. Ad esempio, l'articolo CREATE TRIGGER è disponibile in database SQL. Tuttavia, l'opzione ALL SERVER per i trigger a livello di server indica che i trigger a livello di server non possono essere usati in database SQL. Usare i trigger a livello di database.

Passaggi successivi

Per un elenco delle funzionalità supportate e non supportate dal database SQL, vedere Confronto fra le funzionalità del database SQL di Azure.

Per rilevare i problemi di compatibilità nei database di SQL Server prima della migrazione a database SQL di Azure e per eseguire la migrazione dei database, usare Data Migration Assistant (DMA).