Supporto dell'applicazione livello dati per oggetti e versioni di SQL Server
In un'applicazione livello dati sono supportati gli oggetti Motore di database più comunemente utilizzati.
Contenuto dell'argomento
Oggetti di SQL Server supportati
Supporto dell'applicazione livello dati con le versioni di SQL Server
Limitazioni sulla distribuzione dati
Considerazioni aggiuntive per le azioni di distribuzione
Oggetti di SQL Server supportati
Durante la creazione o la modifica di un'applicazione livello dati, è possibile specificare solo oggetti supportati. Non è possibile estrarre, registrare o importare un'applicazione livello dati da un database esistente che contiene oggetti non supportati in un'applicazione livello dati. In SQL Server 2012 un'applicazione livello dati supporta gli oggetti seguenti.
RUOLO DEL DATABASE |
FUNZIONE: inline con valori di tabella |
FUNZIONE: con valori di tabella e istruzioni multiple. |
FUNZIONE: scalare |
INDICE: cluster |
INDICE: non cluster |
INDICE: spaziale |
INDICE: univoco |
LOGIN |
Autorizzazioni |
Appartenenze a ruoli |
SCHEMA |
Statistiche |
STORED PROCEDURE: Transact-SQL |
Sinonimi |
TABELLA: vincolo CHECK |
TABELLA: regole di confronto |
TABELLA: colonna, incluse le colonne calcolate |
TABELLA: vincolo DEFAULT |
TABELLA: vincoli FOREIGN KEY |
TABELLA: vincoli, indice |
TABELLA: vincolo PRIMARY KEY |
TABELLA: vincolo UNIQUE |
TRIGGER: DML |
TIPO: HIERARCHYID, GEOMETRY, GEOGRAPHY |
TIPO: tipo di dati definito dall'utente |
TIPO: tipo di tabella definito dall'utente |
UTENTE |
VISTA |
Supporto dell'applicazione livello dati con le versioni di SQL Server
Le versioni di SQL Server supportano operazioni di applicazione livello dati a livelli diversi. Tutte le operazioni dell'applicazione livello dati supportate da una versione di SQL Server sono supportate da tutte le edizioni di tale versione.
Le istanze del Motore di database supportano le seguenti operazioni dell'applicazione livello dati:
Le operazioni di esportazione ed estrazione sono supportate in tutte le versioni di SQL Server.
Tutte le operazioni sono supportate in Database SQL di Windows Azure e in tutte le versioni di SQL Server 2012 e SQL Server 2008 R2.
Tutte le operazioni sono supportate in SQL Server 2008 Service Pack 2 (SP2) o versioni successive e SQL Server 2005 SP4 o versioni successive.
Framework applicazione livello dati comprende gli strumenti lato client per la compilazione e l'elaborazione di pacchetti di applicazione livello dati e file di esportazione. Nei seguenti prodotti è incluso Framework applicazione livello dati
In SQL Server 2012 è incluso Framework applicazione livello dati 3.0 che supporta tutte le operazioni dell'applicazione livello dati.
In SQL Server 2008 R2 SP1 e Visual Studio 2010 SP1 è incluso Framework applicazione livello dati 1.1 che supporta tutte le operazioni dell'applicazione livello dati, a eccezione dell'esportazione e dell'importazione.
In SQL Server 2008 R2 e Visual Studio 2010 è incluso Framework 1.0, applicazione livello dati, che supporta tutte le operazioni dell'applicazione livello dati eccetto l'esportazione, l'importazione e l'aggiornamento sul posto.
Gli strumenti client di versioni precedenti di SQL Server o Visual Studio non supportano operazioni dell'applicazione livello dati.
Un pacchetto di applicazione livello dati o un file di esportazione compilato con una versione di Framework applicazione livello dati non può essere elaborato da una versione precedente di Framework applicazione livello dati. Ad esempio, un pacchetto di applicazione livello dati estratto utilizzando gli strumenti client di SQL Server 2012 non può essere distribuito utilizzando gli strumenti client di SQL Server 2008 R2.
Un pacchetto di applicazione livello dati o un file di esportazione compilato con una versione di Framework applicazione livello dati può essere elaborato da qualsiasi versione successiva di Framework applicazione livello dati. Ad esempio, un pacchetto applicazione livello dati estratto utilizzando gli strumenti client di SQL Server 2008 R2 può essere distribuito utilizzando gli strumenti client di SQL Server 2008 R2 SP1 o di SQL Server 2012.
Limitazioni sulla distribuzione dati
Si notino le seguenti limitazioni di fedeltà nel motore di distribuzione dati di Framework applicazione livello dati in SQL Server 2012 PCU1. Tali limitazioni si applicano alle azioni di Framework applicazione livello dati seguenti: distribuzione o pubblicazione di un file dacpac e importazione di un file bacpac.
Perdita di metadati per alcuni tipi di base e condizioni nelle colonne sql_variant. Nei casi interessati, verrà visualizzato un avviso con il messaggio seguente: Determinate proprietà in tipi di dati specifici utilizzati in una colonna sql_variant non vengono mantenute se distribuite mediante DAC Framework.
Tipi di base MONEY, SMALLMONEY, NUMERIC, DECIMAL: la precisione non viene mantenuta.
- Tipi di base DECIMAL/NUMERIC con precisione 38: i metadati sql_variant "TotalBytes" sono sempre impostati su 21.
Tutti i tipi di base di testo: le regole di confronto predefinite del database vengono applicate a tutto il testo.
Tipi di base BINARY: la proprietà lunghezza max non viene mantenuta.
Tipi di base TIME, DATETIMEOFFSET: la precisione è sempre impostata su 7.
Perdita di dati nelle colonne sql_variant. Nel caso interessato, verrà visualizzato un avviso con il messaggio seguente: La distribuzione di un valore in una colonna sql_variant DATETIME2 con scala maggiore di 3 da parte di DAC Framework comporta la perdita di dati. Il valore DATETIME2 è limitato a una scala uguale a 3 durante la distribuzione.
- Tipo di base DATETIME2 con scala maggiore di 3: la scala è limitata a uguale a 3.
L'operazione di distribuzione non riesce per le condizioni seguenti nelle colonne sql_variant. Nei casi interessati, verrà visualizzata una finestra di dialogo con il messaggio seguente: Operazione non riuscita a causa di limitazioni dei dati in DAC Framework.
Tipi di base DATETIME2, SMALLDATETIME e DATE: se il valore è esterno all'intervallo DATETIME, ad esempio, l'anno è inferiore al 1753.
Tipo di base DECIMAL, NUMERIC: quando la precisione del valore è maggiore di 28.
Considerazioni aggiuntive per le azioni di distribuzione
Si notino le considerazioni seguenti per le azioni di distribuzione dati di Framework applicazione livello dati:
Estrazione/Esportazione: queste limitazioni non sono applicabili alle azioni che utilizzano Framework applicazione livello dati per creare un pacchetto da un database, ad esempio estrazione di un file dacpac ed esportazione di un file bacpac. I dati del pacchetto sono una rappresentazione fedele dei dati nel database di origine. Se alcune di queste condizioni sono presenti nel pacchetto, il registro di estrazione/esportazione conterrà un riepilogo dei problemi attraverso i messaggi indicati in precedenza. In questo modo, l'utente verrà avvisato di eventuali problemi di distribuzione dati con il pacchetto creato. Nel registro verrà inoltre visualizzato il messaggio di riepilogo seguente: Queste limitazioni non influiscono sulla fedeltà dei valori e tipi di dati archiviati nel pacchetto di applicazione livello dati (DAC) creato da DAC Framework. Le limitazioni sono applicabili unicamente ai valori e tipi di dati derivanti dalla distribuzione di un pacchetto di applicazione livello dati (DAC) in un database. Per ulteriori informazioni sui dati interessati e su come aggirare questa limitazione, vedere questo argomento.
Distribuzione/pubblicazione/importazione: queste limitazioni non sono applicabili alle azioni che utilizzano Framework applicazione livello dati per distribuire un pacchetto in un database, ad esempio distribuzione o pubblicazione di un file dacpac e importazione di un file bacpac. I dati risultanti nel database di destinazione potrebbero non contenere una rappresentazione fedele dei dati del pacchetto. Il registro di distribuzione/importazione conterrà un messaggio, riportato in precedenza, per ogni istanza in cui si è verificato il problema. L'operazione verrà bloccata da errori (vedere la categoria 3 sopra), ma continuerà con gli altri avvisi.
Per ulteriori informazioni sui dati interessati in questo scenario e su come aggirare questa limitazione per le azioni di distribuzione/pubblicazione/importazione, vedere questo argomento.
Soluzioni alternative: le operazioni di estrazione ed esportazione comportano la scrittura di file di dati BCP fedeli nei file dacpac o bacpac. Per evitare limitazioni, utilizzare l'utilità della riga di comando BCP.exe di SQL Server per distribuire dati fedeli in un database di destinazione da un pacchetto applicazione livello dati.