Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si esegue la migrazione del database da SQL Server al database SQL di Azure, è possibile che i database di SQL Server richiedano una nuova progettazione prima che possano essere migrati. Questo articolo offre indicazioni utili per eseguire la riprogettazione e capire i motivi che la rendono necessaria. Per rilevare incompatibilità ed eseguire la migrazione dei database al database SQL di Azure, usare Servizio Migrazione dati di Azure.
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
Panoramica
La maggior parte delle funzionalità di Transact-SQL (T-SQL) usate dalle applicazioni è completamente supportata sia in Microsoft SQL Server che nel database SQL di Azure. Ad esempio, i componenti SQL principali, come tipi di dati, operatori, funzioni di stringa, funzioni aritmetiche, logiche e del cursore, funzionano allo stesso modo in SQL Server e nel database SQL. T-SQL presenta, tuttavia, alcune differenze negli elementi DDL (Data Definition Language) e DML (Data Manipulation Language), di conseguenza alcune istruzioni e query T-SQL sono supportate solo in parte (questo verrà descritto più avanti in questo articolo).
Inoltre, alcune funzionalità e sintassi non sono affatto supportate, perché il database SQL di Azure è progettato in modo da isolare le funzionalità dalle dipendenze nel database di sistema e nel sistema operativo. Di conseguenza, la maggior parte delle funzionalità a livello di istanza non è supportata nel database SQL. Le istruzioni e le opzioni T-SQL non sono disponibili se configurano opzioni a livello di istanza e componenti del sistema operativo o se specificano una 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 correlate ai gruppi di disponibilità non sono supportate dal database SQL e non sono supportate anche 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 tra funzionalità: database SQL di Azure e Istanza gestita di 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 le istruzioni
CREATE DATABASE
eALTER DATABASE
hanno più di trenta 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 nel database SQL prima della migrazione, ma se si esegue la migrazione del codice T-SQL che crea database è necessario confrontare CREATE DATABASE (database SQL di Azure) con la sintassi di SQL Server in CREATE DATABASE (SQL Server T-SQL) per assicurarsi che tutte le opzioni usate siano supportate.CREATE DATABASE
per il database SQL di Azure ha anche opzioni di obiettivo di servizio e di scalabilità elastica che si applicano solo al database SQL. - Le istruzioni
CREATE TABLE
eALTER TABLE
includono le opzioniFILETABLE
eFILESTREAM
che non possono essere usate in database SQL perché queste funzionalità non sono supportate. - La creazione, la modifica o l'eliminazione di oggetti utente come tabelle, viste o stored procedure che usano le istruzioni ,
CREATE
eALTER
corrispondentiDROP
nelmaster
database in un server logico non sono supportate. -
CREATE LOGIN
Le istruzioni eALTER 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, ALTER LOGIN e Autorizzare l'accesso al database SQL, all'istanza gestita di SQL e ad Azure Synapse Analytics.
Sintassi di T-SQL non supportata nel database SQL di Azure
Oltre alle istruzioni T-SQL correlate alle funzionalità non supportate descritte in Confronto delle funzionalità: Database SQL di Azure e Istanza gestita di SQL di Azure, le istruzioni e i gruppi di istruzioni seguenti non sono supportati. Di conseguenza, se il database di cui deve essere eseguita la migrazione usa le funzionalità seguenti, è necessario riprogettare l'applicazione in modo da eliminare queste funzionalità e istruzioni T-SQL.
- Regole di confronto di 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 active Directory federate con Microsoft Entra ID. Per altre informazioni, vedere Autenticazione di Microsoft Entra per SQL di Azure.
- Query tra database e tra istanze tramite nomi composti da tre o quattro parti. Sono supportati nomi di tre parti che fanno riferimento al database
tempdb
e al database corrente. La query elastica supporta riferimenti di sola lettura alle tabelle in altri database MSSQL. - Concatenamento della proprietà tra database e proprietà del database
TRUSTWORTHY
. -
EXECUTE AS LOGIN
. Utilizzare inveceEXECUTE AS USER
. - Gestione delle chiavi estensibili (EKM) per le chiavi di crittografia. Le chiavi gestite dal cliente ETDE (Transparent Data Encryption) e le chiavi master della colonna Always Encrypted possono essere archiviate in Azure Key Vault.
- Gestione degli 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. Questa include la sintassi per backup, ripristino, Always On, mirroring del database, log shipping e modalità di ripristino.
- Sintassi correlata alla replica snapshot, transazionale e di tipo merge, che non è disponibile nel 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
. -
OPENQUERY
,OPENDATASOURCE
e nomi in quattro parti. - .NET Framework: integrazione di Common Language Runtime (CLR)
- Ricerca semantica
- Credenziali del server: usare le credenziali con ambito database.
- Autorizzazioni a livello di server:
GRANT
,REVOKE
eDENY
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
eRECONFIGURE
. ALTER DATABASE SCOPED CONFIGURATION è supportato. sp_helpuser
sp_migrate_user_to_contained
- SQL Server Agent: sintassi che si basa su SQL Server Agent o sul database
msdb
: avvisi, operatori, server di gestione centrale. Usare invece gli script, ad esempio Azure PowerShell. - SQL Server audit: usare il controllo del database SQL.
- Traccia SQL Server.
- Flag di traccia.
- Debug T-SQL.
- Trigger di accesso o con ambito server.
- Istruzione
USE
: per modificare il contesto del database in un database diverso è necessario creare una nuova connessione al nuovo database.
Informazioni di riferimento complete su T-SQL
Per altre informazioni sulla grammatica, l'utilizzo e gli esempi di T-SQL, vedere Transact-SQL riferimento (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 di icone in cui sono elencate le piattaforme MSSQL e la relativa applicabilità. Ad esempio, i gruppi di disponibilità sono stati introdotti in SQL Server 2012. L'articolo Crea gruppo di disponibilità 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, il tema generale di un articolo può essere usato in un prodotto, ma esistono differenze minime tra prodotti. Le differenze sono indicate in punti centrali nell'articolo come appropriato. Ad esempio l'articolo CREATE TRIGGER
è disponibile nel 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 nel database SQL. Usare i trigger a livello di database.