Colonne e tipo di dati XML (SQL Server)XML Data Type and Columns (SQL Server)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Questo argomento illustra i vantaggi e le limitazioni del tipo di dati xml in SQL ServerSQL Server e spiega come scegliere la modalità di archiviazione dei dati XML. This topic discusses the advantages and the limitations of the xml data type in SQL ServerSQL Server, and helps you to choose how to store XML data.

Modello di dati relazionale o XMLRelational or XML Data Model

Se i dati utilizzati sono altamente strutturati in base a uno schema noto, il modello relazionale costituisce senz'altro il metodo di archiviazione ottimale.If your data is highly structured with known schema, the relational model is likely to work best for data storage. SQL ServerSQL Server sono disponibili tutte le funzionalità e gli strumenti necessari. provides the required functionality and tools you may need. Se invece i dati sono semistrutturati, non strutturati o dotati di una struttura sconosciuta, sarà necessario prestare particolare attenzione alla modellazione.On the other hand, if the structure is semi-structured or unstructured, or unknown, you have to give consideration to modeling such data.

XML costituisce la soluzione ottimale quando si desidera un modello indipendente dalla piattaforma, per garantire la portabilità dei dati tramite markup strutturale e semantico.XML is a good choice if you want a platform-independent model in order to ensure portability of the data by using structural and semantic markup. Costituisce inoltre una soluzione appropriata nelle circostanze seguenti:Additionally, it is an appropriate option if some of the following properties are satisfied:

  • I dati sono di tipo sparse, non se ne conosce la struttura o si prevede che in futuro la struttura verrà modificata in modo significativo.Your data is sparse or you do not know the structure of the data, or the structure of your data may change significantly in the future.

  • I dati rappresentano una gerarchia di contenuto, anziché riferimenti tra entità, e potrebbero essere ricorsivi.Your data represents containment hierarchy, instead of references among entities, and may be recursive.

  • L'ordine è implicito nei dati.Order is inherent in your data.

  • Si desidera eseguire query sui dati o aggiornarne alcune parti, in base alla struttura.You want to query into the data or update parts of it, based on its structure.

    Se nessuna di queste condizioni è soddisfatta, è consigliabile utilizzare il modello di dati relazionale.If none of these conditions is met, you should use the relational data model. Se ad esempio i dati sono in formato XML ma l'applicazione usa il database solo per archiviarli e recuperarli, è sufficiente usare una colonna di tipo [n]varchar(max) .For example, if your data is in XML format but your application just uses the database to store and retrieve the data, an [n]varchar(max) column is all you require. L'archiviazione dei dati in una colonna XML offre ulteriori vantaggi,Storing the data in an XML column has additional benefits. ad esempio la possibilità di determinare automaticamente se i dati sono validi e in formato corretto e includono anche il supporto per l'esecuzione di aggiornamenti e query dettagliate sui dati XML.This includes having the engine determine that the data is well formed or valid, and also includes support for fine-grained query and updates into the XML data.

Motivi per l'archiviazione di dati XML in SQL ServerReasons for Storing XML Data in SQL Server

Di seguito sono illustrati alcuni dei motivi per utilizzare le caratteristiche XML native di SQL ServerSQL Server , anziché gestire i dati XML nel file system:Following are some of the reasons to use native XML features in SQL ServerSQL Server instead of managing your XML data in the file system:

  • Si desidera condividere, modificare ed eseguire query sui dati XML in un modo efficiente e basato sulle transazioni.You want to share, query, and modify your XML data in an efficient and transacted way. Per l'applicazione è importante disporre di un accesso ai dati estremamente dettagliato,Fine-grained data access is important to your application. ad esempio perché si desidera estrarre alcune sezioni da un documento XML oppure inserire una nuova sezione senza sostituire l'intero documento.For example, you may want to extract some of the sections within an XML document, or you may want to insert a new section without replacing your whole document.

  • Si utilizzano sia dati relazionali che dati XML e si desidera garantirne l'interoperabilità nell'ambito dell'applicazione.You have relational data and XML data and you want interoperability between both relational and XML data within your application.

  • È necessario il supporto del linguaggio per le query e la modifica dei dati per le applicazioni tra domini.You need language support for query and data modification for cross-domain applications.

  • Si desidera che il server garantisca che i dati sono nel formato corretto e, facoltativamente, che i dati vengano convalidati in base a XML Schema specifici.You want the server to guarantee that the data is well formed and also optionally validate your data according to XML schemas.

  • Si desidera indicizzare i dati XML per una più efficiente elaborazione delle query e una maggiore scalabilità e per consentire l'utilizzo di un'avanzata utilità di ottimizzazione delle query.You want indexing of XML data for efficient query processing and good scalability, and the use of a first-rate query optimizer.

  • Si desidera accedere ai dati XML tramite SOAP, ADO.NET e OLE DB.You want SOAP, ADO.NET, and OLE DB access to XML data.

  • Per la gestione dei dati XML si desidera utilizzare le funzionalità amministrative del server di database,You want to use administrative functionality of the database server for managing your XML data. ad esempio le funzionalità di backup, recupero e replica.For example, this would be backup, recovery, and replication.

    Se nessuna di queste condizioni è soddisfatta, è preferibile archiviare i dati in un formato diverso da XML usando un tipo di dati per oggetti di grandi dimensioni, ad esempio [n]varchar(max) o varbinary(max).If none of these conditions is satisfied, it may be better to store your data as a non-XML, large object type, such as [n]varchar(max) or varbinary(max).

Opzioni di archiviazione per i dati XMLXML Storage Options

Le opzioni di archiviazione per i dati XML disponibili in SQL ServerSQL Server includono le seguenti:The storage options for XML in SQL ServerSQL Server include the following:

  • Archiviazione nativa tramite il tipo di dati xml .Native storage as xml data type

    I dati vengono archiviati in una rappresentazione interna che mantiene il contenuto XMLThe data is stored in an internal representation that preserves the XML content of the data. e che contiene informazioni sulla gerarchia di contenimento, l'ordine dei documenti e i valori dell'elemento e dell'attributo.This internal representation includes information about the containment hierarchy, document order, and element and attribute values. In particolare, viene mantenuto il contenuto InfoSet dei dati XML.Specifically, the InfoSet content of the XML data is preserved. Per altre informazioni su InfoSet, visitare il sito Web all'indirizzo http://www.w3.org/TR/xml-infoset.For more information about InfoSet, visit http://www.w3.org/TR/xml-infoset. Il contenuto InfoSet potrebbe non essere una copia identica del testo XML, perché non vengono mantenute le informazioni seguenti: spazi vuoti non significativi, ordine degli attributi, prefissi degli spazi dei nomi e dichiarazione XML.The InfoSet content may not be an identical copy of the text XML, because the following information is not retained: insignificant white spaces, order of attributes, namespace prefixes, and XML declaration.

    Per il tipo di dati xml tipizzato, un tipo di dati xml associato a XML Schema, PSVI (Post-Schema Validation InfoSet) aggiunge all'InfoSet le informazioni sul tipo e viene codificato nella rappresentazione interna.For typed xml data type, an xml data type bound to XML schemas, the post-schema validation InfoSet (PSVI) adds type information to the InfoSet and is encoded in the internal representation. Questo consente di migliorare in modo significativo la velocità di analisi.This improves parsing speed significantly. Per altre informazioni, vedere le specifiche di XML Schema W3C all'indirizzo http://www.w3.org/TR/xmlschema-1 e http://www.w3.org/TR/xmlschema-2.For more information, see the W3C XML Schema specifications at http://www.w3.org/TR/xmlschema-1 and http://www.w3.org/TR/xmlschema-2.

  • Mapping tra archiviazione XML e relazionaleMapping between XML and relational storage

    Tramite uno schema con annotazioni (AXSD), il codice XML viene scomposto in colonne e archiviato in una o più tabelle.By using an annotated schema (AXSD), the XML is decomposed into columns in one or more tables. Questo consente di mantenere la conformità dei dati a livello relazionale,This preserves fidelity of the data at the relational level. conservando la struttura gerarchica anche se l'ordine degli elementi viene ignorato.As a result, the hierarchical structure is preserved although order among elements is ignored. Lo schema non può essere ricorsivo.The schema cannot be recursive.

  • Archiviazione di oggetti di grandi dimensioni, [n]varchar(max) e varbinary(max)Large object storage, [n]varchar(max) and varbinary(max)

    Viene archiviata una copia identica dei dati.An identical copy of the data is stored. Questo è utile per le applicazioni specializzate per scopi particolari, ad esempio quelle per i documenti legali.This is useful for special-purpose applications such as legal documents. Per la maggior parte delle applicazioni non è invece necessaria una copia esatta, ma è sufficiente il contenuto XML (conformità all'InfoSet).Most applications do not require an exact copy and are satisfied with the XML content (InfoSet fidelity).

    È in genere necessario utilizzare una combinazione di questi approcci,Generally, you may have to use a combination of these approaches. ad esempio se si desidera archiviare i dati XML in una colonna con tipo di dati xml e promuovere le relative proprietà al livello di colonne relazionali,For example, you may want to store your XML data in an xml data type column and promote properties from it into relational columns. oppure se si vuole usare la tecnologia di mapping per archiviare le parti non ricorsive in colonne non XML e solo le parti ricorsive in colonne con tipo di dati xml .Or, you may want to use mapping technology to store nonrecursive parts in non-XML columns and only the recursive parts in xml data type columns.

Scelta della tecnologia XMLChoice of XML Technology

La scelta della tecnologia XML, ovvero tra XML nativo e visualizzazione XML, dipende in genere dai fattori seguenti:The choice of XML technology, native XML versus XML view, generally depends upon the following factors:

  • Opzioni di archiviazioneStorage options

    Per i dati XML potrebbe essere più appropriata l'archiviazione di oggetti di grandi dimensioni (ad esempio, il manuale di un prodotto) oppure l'archiviazione in colonne relazionali (ad esempio, una voce convertita in formato XML).Your XML data may be more appropriate for large object storage (for example, a product manual), or more amenable to storage in relational columns (for example, a line item converted to XML). Ogni opzione di archiviazione mantiene la conformità del documento a un livello diverso.Each storage option preserves document fidelity to a different extent.

  • Funzionalità di queryQuery capabilities

    L'opzione di archiviazione più appropriata dipende dalla natura delle query e dal livello di dettaglio con cui si desidera eseguire query sui dati XML.You may find one storage option more appropriate than another, based on the nature of your queries and on the extent to which you query your XML data. Le query dettagliate sui dati XML, quale la valutazione del predicato sui nodi XML, sono supportate a livelli diversi dalle due opzioni di archiviazione.Fine-grained query of your XML data, for example, predicate evaluation on XML nodes, is supported to varying degrees in the two storage options.

  • Indicizzazione dei dati XMLIndexing XML data

    Tramite l'indicizzazione dei dati XML è possibile migliorare le prestazioni delle query XML.You may want to index the XML data to speed up XML query performance. Le opzioni di indicizzazione disponibili dipendono dalle opzioni di archiviazione ed è necessario selezionare quella più appropriata per ottimizzare il carico di lavoro.Indexing options vary with the storage options; you have to make the appropriate choice to optimize your workload.

  • Funzionalità per la modifica dei datiData modification capabilities

    Alcuni carichi di lavoro comportano una modifica estremamente dettagliata dei dati XML,Some workloads involve fine-grained modification of XML data. che può ad esempio includere l'aggiunta di una nuova sezione all'interno di un documento, mentre altri, ad esempio il contenuto Web, non richiedono modifiche così specifiche.For example, this can include adding a new section within a document, while other workloads, such as Web content, do not. Il supporto del linguaggio per la modifica dei dati può essere molto importante per un'applicazione.Data modification language support may be important for your application.

  • Supporto degli schemiSchema support

    I dati XML possono essere descritti da uno schema che può essere costituito o meno da un documento di XML Schema.Your XML data may be described by a schema that may or may not be an XML schema document. Il supporto dell'XML associato a schema dipende dalla tecnologia XML.The support for schema-bound XML depends upon the XML technology.

    A opzioni diverse corrispondono caratteristiche di prestazioni diverse.Different choices also have different performance characteristics.

Archiviazione XML nativaNative XML Storage

È possibile archiviare i dati XML in una colonna con tipo di dati xml nel server.You can store your XML data in an xml data type column at the server. Questa soluzione è particolarmente appropriata se:This is an appropriate choice if the following applies:

  • Si desidera un metodo diretto per archiviare i dati XML nel server e, al tempo stesso, mantenere l'ordine e la struttura dei documenti.You want a straightforward way to store your XML data at the server and, at the same time, preserve document order and document structure.

  • Non è sempre disponibile uno schema per i dati XML.You may or may not have a schema for your XML data.

  • Si desidera modificare ed eseguire query sui dati XML.You want to query and modify your XML data.

  • Si desidera indicizzare i dati XML per una più rapida elaborazione delle query.You want to index the XML data for faster query processing.

  • L'applicazione richiede viste del catalogo di sistema per l'amministrazione di dati e XML Schema.Your application needs system catalog views to administer your XML data and XML schemas.

    L'archiviazione XML nativa è utile quando si utilizzano documenti XML con strutture diverse oppure conformi a schemi diversi o complessi, di cui è difficile eseguire il mapping a strutture relazionali.Native XML storage is useful when you have XML documents that have a range of structures, or you have XML documents that conform to different or complex schemas that are too hard to map to relational structures.

Esempio: modellazione di dati XML tramite il tipo di dati xmlExample: Modeling XML Data Using the xml Data Type

Si consideri un manuale di prodotto in formato XML, composto da un capitolo per ogni argomento e con più sezioni in ogni capitolo.Consider a product manual in XML format that is made up of a separate chapter for each topic and that has multiple sections within each chapter. Una sezione può contenere sottosezioniA section can contain subsections. e, di conseguenza, l'elemento <sezione> è ricorsivo.As a result, <section> is a recursive element. I manuali dei prodotti includono elevati volumi di contenuto eterogeneo, ad esempio diagrammi e materiale tecnico, e i dati sono semistrutturati.Product manuals contain a large amount of mixed content, diagrams, and technical material; the data is semi-structured. Gli utenti possono avere l'esigenza di ricercare gli argomenti di interesse in un contesto specifico, ad esempio la sezione dedicata agli indici cluster nel capitolo dedicato all'indicizzazione, e di eseguire query su quantità tecniche.Users may want to perform a contextual search for topics of interest such as searching for the section on "clustered index" within the chapter on "indexing", and query technical quantities.

Una colonna con tipo di dati xml costituisce un modello di archiviazione particolarmente appropriato per i documenti XML,An appropriate storage model for your XML documents is an xml data type column. perché mantiene il contenuto InfoSet dei dati XML.This preserves the InfoSet content of your XML data. È possibile indicizzare la colonna XML per migliorare le prestazioni delle query.Indexing the XML column benefits query performance.

Esempio: conservazione di copie esatte dei dati XMLExample: Retaining Exact Copies of XML Data

Si supponga che, per legge, sia necessario conservare copie testuali esatte dei propri documenti XML,For illustration, assume that government regulations require you to retain exact textual copies of your XML documents. quali documenti firmati, documenti legali oppure ordini di transazioni azionarie.For example, these could include signed documents, legal documents, or stock transaction orders. È consigliabile archiviare i documenti in una colonna con tipo di dati [n]varchar(max) .You may want to store your documents in a [n]varchar(max) column.

Per le query, in fase di esecuzione è necessario convertire i dati nel tipo di dati xml ed eseguire query XQuery su di essi.For querying, convert the data to xml data type at run time and execute Xquery on it. La conversione in fase di esecuzione può essere tuttavia molto costosa, soprattutto se il documento è di grandi dimensioni.The run-time conversion may be costly, especially when the document is large. Se è necessario eseguire query di frequente, è possibile archiviare una seconda copia dei documenti in una colonna con tipo di dati xml e indicizzarla, mentre per restituire le copie esatte dei documenti si usa la colonna con tipo di dati [n]varchar(max) .If you query frequently, you can redundantly store the documents in an xml data type column and index it while you return exact document copies from the [n]varchar(max) column.

La colonna XML può essere una colonna calcolata, basata sulla colonna [n]varchar(max) .The XML column may be a computed column, based on the [n]varchar(max) column. Non è tuttavia possibile creare un indice XML su una colonna calcolata di tipo XML, né su colonne di tipo [n]varchar(max) o varbinary(max) .However, you cannot create an XML index on a computed, XML column, nor can an XML index be built on [n]varchar(max) or varbinary(max) columns.

Tecnologia di visualizzazione XMLXML View Technology

Definendo un mapping tra elementi XML Schema e le tabelle in un database, si crea una visualizzazione XML dei dati persistenti.By defining a mapping between your XML schemas and the tables in a database, you create an "XML view" of your persistent data. Tramite la visualizzazione XML, è possibile utilizzare il caricamento bulk XML per popolare le tabelle sottostanti.XML bulk load can be used to populate the underlying tables by using the XML view. È possibile eseguire query sulla visualizzazione XML utilizzando XPath versione 1.0. Le query vengono convertite in query SQL sulle tabelle.You can query the XML view by using XPath version 1.0; the query is translated to SQL queries on the tables. Analogamente, anche gli aggiornamenti vengono propagati a tali tabelle.Similarly, updates are also propagated to those tables.

Questa tecnologia è utile nelle situazioni seguenti:This technology is useful in the following situations:

  • Si desidera disporre di un modello di programmazione incentrato su XML, che utilizza visualizzazioni XML basate sui dati relazionali esistenti.You want to have an XML-centric programming model using XML views over your existing relational data.

  • Si dispone di uno schema (XSD, XDR) per i dati XML fornito da un partner esterno.You have a schema (XSD, XDR) for your XML data that an external partner may have provided.

  • L'ordine dei dati non è importante, i dati della tabella su cui si esegue la query non sono ricorsivi oppure si conosce in anticipo la profondità di ricorsione massima.Order is not important in your data, or your query table data is not recursive, or the maximal recursion depth is known in advance.

  • Si desidera modificare ed eseguire query sui dati tramite la visualizzazione XML utilizzando XPath versione 1.0.You want to query and modify the data through the XML view by using XPath version 1.0.

  • Si desidera eseguire il caricamento bulk dei dati XML e scomporli nelle tabelle sottostanti utilizzando la visualizzazione XML.You want to bulk load XML data and decompose them into the underlying tables by using the XML view.

    Questa tecnica viene utilizzata ad esempio per i dati relazionali esposti come XML per lo scambio di dati e i servizi Web e per i dati XML con schema fisso.Examples include relational data exposed as XML for data exchange and Web services, and XML data with fixed schema. Per ulteriori informazioni vedere MSDN Online Library.For more information, see the MSDN Online Library.

Esempio: modellazione di dati tramite un elemento XML Schema con annotazioni (AXSD)Example: Modeling Data Using an Annotated XML Schema (AXSD)

Si supponga ad esempio di avere a disposizione dati relazionali relativi a clienti, ordini e voci, che si desidera gestire come XML.For illustration, assume that you have existing relational data, such as customers, orders, and line items, that you want to handle as XML. Definire una visualizzazione XML applicando uno schema AXSD ai dati relazionali.Define an XML view by using AXSD over the relational data. La visualizzazione XML consente di eseguire il caricamento bulk dei dati XML nelle tabelle, nonché di aggiornare ed eseguire query sui dati relazionali.The XML view allows you to bulk load XML data into your tables and query and update the relational data by using the XML view. Questo modello è utile quando è necessario scambiare dati contenenti markup XML con altre applicazioni, senza interrompere le applicazioni SQL.This model is useful if you have to exchange data that contains XML markup with other applications while your SQL applications work uninterrupted.

Modello ibridoHybrid Model

La soluzione più appropriata per la modellazione dei dati è spesso costituita da una combinazione di dati relazionali e colonne con tipo di dati xml .Frequently, a combination of relational and xml data type columns is appropriate for data modeling. È possibile archiviare parte dei dati XML in colonne relazionali e il resto, o l'intero valore XML, in una colonna XML.Some of the values from your XML data can be stored in relational columns, and the rest, or the whole XML value stored in an XML column. Questa soluzione può migliorare le prestazioni, perché offre un maggiore controllo sugli indici creati sulle colonne relazionali e sulle caratteristiche di blocco.This may yield better performance in that you have more control over the indexes created on the relational columns and locking characteristics.

I valori da archiviare nelle colonne relazionali dipendono dal carico di lavoro.The values to store in relational columns depend on your workload. Se ad esempio per il recupero di tutti i valori XML si usa l'espressione del percorso, /Customer/@CustId, promuovendo il valore dell'attributo CustId in modo da ottenere una colonna relazionale e indicizzando tale colonna sarà possibile eseguire le query molto più rapidamente.For example, if you retrieve all the XML values based on the path expression, /Customer/@CustId, promoting the value of the CustId attribute into a relational column and indexing it may yield faster query performance. Se tuttavia i dati XML sono estensivamente scomposti in colonne relazionali in modo non ridondante, il riassemblaggio potrebbe avere un costo significativo.On the other hand, if your XML data is extensively and nonredundantly decomposed into relational columns, the re-assembly cost may be significant.

Se ad esempio per dati XML altamente strutturati il contenuto di una tabella viene convertito in XML, sarà possibile eseguire il mapping di tutti i valori a colonne relazionali ed eventualmente utilizzare la tecnologia della visualizzazione XML.For highly structured XML data, for example, the content of a table has been converted into XML; you can map all values to relational columns, and possibly use XML view technology.

Granularità dei dati XMLGranularity of XML Data

La granularità dei dati XML archiviata in una colonna XML è molto importante per le operazioni di blocco e, a un livello inferiore, è anche importante per gli aggiornamenti.The granularity of the XML data stored in an XML column is very important for locking and, to a lesser degree, it is also important for updates. SQL ServerSQL Server usa lo stesso meccanismo di blocco sia per i dati XML che per i dati non XML. uses the same locking mechanism for both XML and non-XML data. Di conseguenza, il blocco a livello di riga causa il blocco di tutte le istanze XML presenti nella riga.Therefore, row-level locking causes all XML instances in the row to be locked. Quando la granularità è ampia, in uno scenario multiutente il blocco di istanze XML di grandi dimensioni per gli aggiornamenti provoca una diminuzione della velocità effettiva.When the granularity is large, locking large XML instances for updates causes throughput to decline in a multiuser scenario. Una scomposizione eccessiva, invece, comporta la perdita dell'incapsulamento degli oggetti e l'aumento del costo di riassemblaggio.On the other hand, severe decomposition loses object encapsulation and increases reassembly cost.

Il giusto equilibrio tra requisiti di modellazione dei dati e caratteristiche di blocco e aggiornamento è pertanto importante per una progettazione ottimale.A balance between data modeling requirements and locking and update characteristics is important for good design. In SQL ServerSQL Server, tuttavia, le dimensioni delle istanze XML effettivamente archiviate non costituiscono un fattore critico.However, in SQL ServerSQL Server, the size of actual stored XML instances is not as critical.

Per aggiornare un'istanza XML, ad esempio, viene utilizzato il nuovo supporto per l'aggiornamento parziale degli oggetti BLOB (Binary Large Object) e degli indici, in cui l'istanza XML archiviata viene confrontata con la versione aggiornata.For example, updates to an XML instance are performed by using new support for partial binary large object (BLOB) and partial index updates in which the existing stored XML instance is compared to its updated version. Nell'aggiornamento parziale degli oggetti BLOB viene eseguito un confronto differenziale tra le due istanze XML e l'aggiornamento viene limitato alle differenze.Partial binary large object (BLOB) update performs a differential comparison between the two XML instances and updates only the differences. Nell'aggiornamento parziale degli indici vengono modificate solo le righe che devono essere modificate nell'indice XML.Partial index updates modify only those rows that must be changed in the XML index.

Limiti del tipo di dati xmlLimitations of the xml Data Type

Considerare i seguenti limiti generali validi per il tipo di dati xml :Note the following general limitations that apply to the xml data type:

  • La rappresentazione archiviata delle istanze con tipo di dati xml non può superare i 2 GB.The stored representation of xml data type instances cannot exceed 2 GB.

  • Non è utilizzabile come sottotipo di un'istanza sql_variant .It cannot be used as a subtype of a sql_variant instance.

  • Non supporta il cast o la conversione in text o ntext.It does not support casting or converting to either text or ntext. Usare invece varchar(max) or nvarchar(max) .Use varchar(max) or nvarchar(max) instead.

  • Non può essere confrontato o ordinato.It cannot be compared or sorted. Questo significa che un tipo di dati xml non può essere utilizzato in un'istruzione GROUP BY.This means an xml data type cannot be used in a GROUP BY statement.

  • Non può essere utilizzato come parametro nelle funzioni scalari predefinite diverse da ISNULL, COALESCE e DATALENGTH.It cannot be used as a parameter to any scalar, built-in functions other than ISNULL, COALESCE, and DATALENGTH.

  • Non può essere utilizzato come colonna chiave in un indice.It cannot be used as a key column in an index. Può tuttavia essere inserito come tipo di dati in un indice cluster o essere aggiunto in modo esplicito a un indice non cluster utilizzando la parola chiave INCLUDE durante la creazione dell'indice.However, it can be included as data in a clustered index or explicitly added to a nonclustered index by using the INCLUDE keyword when the nonclustered index is created.

Vedere ancheSee Also

Esempi di importazione ed esportazione bulk di documenti XML (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)