Supporto dell'applicazione livello dati per oggetti e versioni di SQL Server
Un'applicazione livello dati supporta gli oggetti motore di database usati più di frequente.
Contenuto dell'articolo
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. SQL Server 2014 supporta gli oggetti seguenti in un'applicazione livello dati.
RUOLO DEL DATABASE | FUNZIONE: inline con valori di tabella |
FUNZIONE: con valori di tabella e istruzioni multiple. | FUNZIONE: scalare |
INDICE: cluster | INDEX: 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 | USER |
VIEW |
Supporto dell'applicazione livello dati con le versioni di SQL Server
Le versioni di SQL Server hanno diversi livelli di supporto per le operazioni di applicazione livello dati. Tutte le operazioni di 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 operazioni di applicazione livello dati seguenti:
L'esportazione e l'estrazione sono supportate in tutte le versioni supportate di SQL Server.
Tutte le operazioni sono supportate in database SQL di Azure e in tutte le versioni di SQL Server 2014, SQL Server 2012 e SQL Server 2008 R2.
Tutte le operazioni sono supportate in SQL Server 2008 Service Pack 2 (SP2) o versione successiva e SQL Server 2005 SP4 o versione successiva.
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
SQL Server 2014 e SQL Server 2012 include DAC Framework 3.0, che supporta tutte le operazioni di applicazione livello dati.
SQL Server 2008 R2 SP1 e Visual Studio 2010 SP1 include DAC Framework 1.1, che supporta tutte le operazioni di applicazione livello dati tranne l'esportazione e l'importazione.
SQL Server 2008 R2 e Visual Studio 2010 include DAC Framework 1.0, che supporta tutte le operazioni di applicazione livello dati, ad eccezione dell'esportazione, dell'importazione e dell'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, non è possibile distribuire un pacchetto di applicazione livello dati estratto usando gli strumenti client di SQL Server 2014 usando 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 di applicazione livello dati estratto usando gli strumenti client di SQL Server 2008 R2 può essere distribuito usando gli strumenti client di SQL Server 2008 R2 SP1 o versioni successive.
Limitazioni sulla distribuzione dei dati
Si notino le seguenti limitazioni di fedeltà nel motore di distribuzione dati di DAC Framework in SQL Server 2012 SP1. Le limitazioni si applicano alle azioni di DAC Framework seguenti: distribuzione o pubblicazione di un file con estensione dacpac e importazione di un file con estensione bacpac.
Perdita di metadati in determinate situazioni e per alcuni tipi di base 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à Max Length 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. Durante la distribuzione, il valore DATETIME2 è limitato a una scala uguale a 3.
- Tipo di base DATETIME2 con scala maggiore di 3: la scala è limitata a uguale a 3.
L'operazione di distribuzione non viene completata 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 non è compreso nell'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 tengano presenti le considerazioni seguenti per le azioni di distribuzione dati di DAC Framework:
Estrazione/Esportazione: queste limitazioni non sono applicabili alle azioni che usano DAC Framework per creare un pacchetto da un database, ad esempio l'estrazione di un file con estensione dacpac e l'esportazione di un file con estensione bacpac. I dati del pacchetto sono una rappresentazione totalmente fedele dei dati nel database di origine. Se una di queste condizioni è presente nel pacchetto, nel registro di estrazione/esportazione sarà contenuto un riepilogo dei problemi tramite i messaggi indicati in precedenza. In questo modo, l'utente verrà avvisato di potenziali problemi di distribuzione dati con il pacchetto creato. L'utente visualizzerà anche il seguente messaggio di riepilogo nel log: queste limitazioni non influiscono sulla fedeltà dei tipi di dati e dei valori archiviati nel pacchetto di applicazione livello dati creato da DAC Framework. Si applicano solo ai tipi di dati e ai valori risultanti dalla distribuzione di un pacchetto di applicazione livello dati in un database. Per altre informazioni sui dati interessati e su come ovviare a questa limitazione, vedere questo argomento.
Distribuzione/Pubblicazione/Importazione : queste limitazioni si applicano alle azioni che usano DAC Framework per distribuire un pacchetto in un database, ad esempio la distribuzione o pubblicazione di un file con estensione dacpac e l'importazione di un file con estensione bacpac. I dati presenti nel database di destinazione potrebbero non rappresentare in modo totalmente fedele quelli del pacchetto. Nel registro di distribuzione/importazione sarà contenuto un messaggio, indicato in precedenza, per ogni situazione in cui si è verificato il problema. L'operazione verrà bloccata da errori (vedere la categoria 3 precedente), ma continuerà con gli altri avvisi.
Per altre informazioni sui dati interessati in questo scenario e su come risolvere questa limitazione per le azioni di distribuzione/pubblicazione/importazione, vedere questo argomento.
Soluzioni alternative: le operazioni di estrazione ed esportazione comporteranno la scrittura di file di dati BCP totalmente fedeli nei file con estensione bacpac o dacpac. Per evitare limitazioni, utilizzare l'utilità della riga di comando BCP.exe di SQL Server per distribuire dati totalmente fedeli in un database di destinazione da un pacchetto di applicazione livello dati.