FileTable (SQL Server)FileTables (SQL Server)

La funzionalità FileTable fornisce supporto per lo spazio dei nomi dei file di Windows e la compatibilità con le applicazioni di Windows ai dati dei file archiviati in SQL ServerSQL Server.The FileTable feature brings support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL ServerSQL Server. FileTable consente l'integrazione dei componenti di archiviazione e gestione dei dati da parte di un'applicazione e fornisce servizi di SQL ServerSQL Server integrati, incluse la ricerca full-text e la ricerca semantica, su dati e metadati non strutturati.FileTable lets an application integrate its storage and data management components, and provides integrated SQL ServerSQL Server services - including full-text search and semantic search - over unstructured data and metadata.

In altre parole, è possibile archiviare file e documenti in speciali tabelle denominate FileTable in SQL ServerSQL Server , ma accedere a tali file e documenti da applicazioni di Windows come se questi fossero archiviati nel file system, senza apportare alcuna modifica alle applicazioni del client.In other words, you can store files and documents in special tables in SQL ServerSQL Server called FileTables, but access them from Windows applications as if they were stored in the file system, without making any changes to your client applications.

La caratteristica FileTable si basa sulla tecnologia FILESTREAM di SQL ServerSQL Server.The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. Per altre informazioni su FILESTREAM, vedere FILESTREAM (SQL Server).To learn more about FILESTREAM, see FILESTREAM (SQL Server).

Vantaggi della caratteristica FileTable Benefits of the FileTable Feature

Tra gli obiettivi della caratteristica FileTable sono inclusi i seguenti:The goals of the FileTable feature include the following:

  • Compatibilità con le API Windows per dati dei file archiviati all'interno di un database di SQL ServerSQL Server .Windows API compatibility for file data stored within a SQL ServerSQL Server database. La compatibilità con le API Windows include gli elementi seguenti:Windows API compatibility includes the following:

    • Accesso tramite flusso non transazionale e aggiornamenti sul posto ai dati FILESTREAM.Non-transactional streaming access and in-place updates to FILESTREAM data.

    • Spazio dei nomi gerarchico di directory e file.A hierarchical namespace of directories and files.

    • Archiviazione di attributi dei file, quali data di creazione e data di modifica.Storage of file attributes, such as created date and modified date.

    • Supporto per API di gestione di file e directory di Windows.Support for Windows file and directory management APIs.

  • Compatibilità con altre caratteristiche di SQL ServerSQL Server , inclusi strumenti di gestione, servizi e funzionalità di query relazionali su dati FILESTREAM e attributi di file.Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

    Le tabelle FileTable eliminano pertanto un ostacolo significativo all'utilizzo di SQL ServerSQL Server per l'archiviazione e la gestione di dati non strutturati che si trovano attualmente come file in file server.Thus FileTables remove a significant barrier to the use of SQL ServerSQL Server for the storage and management of unstructured data that is currently residing as files on file servers. Le organizzazioni possono spostare tali dati da file server a tabelle FileTable per sfruttare l'amministrazione integrata e altri servizi forniti da SQL ServerSQL Server.Enterprises can move this data from file servers into FileTables to take advantage of integrated administration and services provided by SQL ServerSQL Server. Contemporaneamente, le organizzazioni possono gestire la compatibilità delle applicazioni di Windows che riconoscono tali dati come file nel file system.At the same time, they can maintain Windows application compatibility for their existing Windows applications that see this data as files in the file system.

Definizione di tabella FileTable What Is a FileTable?

SQL ServerSQL Server fornisce una speciale tabella di file, denominata anche FileTable, per applicazioni che richiedono archiviazione di file e directory nel database, con compatibilità con le API Windows e accesso non transazionale. provides a special table of files, also referred to as a FileTable, for applications that require file and directory storage in the database, with Windows API compatibility and non-transactional access. Il termine FileTable indica una tabella utente specifica con uno schema predefinito per l'archiviazione di dati FILESTREAM, nonché informazioni sulla gerarchia di file e directory e attributi di file.A FileTable is a specialized user table with a pre-defined schema that stores FILESTREAM data, as well as file and directory hierarchy information and file attributes.

Una tabella FileTable offre le funzionalità seguenti:A FileTable provides the following functionality:

  • Una tabella FileTable rappresenta una gerarchia di directory e file.A FileTable represents a hierarchy of directories and files. In tale tabella sono archiviati i dati correlati a tutti i nodi nella gerarchia, sia per le directory sia per i file inclusi in tali nodi.It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. Questa gerarchia inizia da una directory radice specificata durante la creazione della tabella FileTable.This hierarchy starts from a root directory that you specify when you create the FileTable.

  • Ogni riga in una tabella FileTable rappresenta un file o una directory.Every row in a FileTable represents a file or a directory.

  • Ogni riga contiene i seguenti elementi.Every row contains the following items. Per altre informazioni sullo schema di una tabella FileTable, vedere Schema delle tabelle FileTable.For more information about the schema of a FileTable, see FileTable Schema.

    • Una colonnafile_stream per dati del flusso e un identificatore stream_id (GUID).Afile_stream column for stream data and a stream_id (GUID) identifier. La colonna file_stream è NULL per una directory.(The file_stream column is NULL for a directory.)

    • Entrambe le colonne path_locator e parent_path_locator per la rappresentazione e la gestione della gerarchia di file e directory.Both path_locator and parent_path_locator columns for representing and maintaining the file and directory hierarchy.

    • 10 attributi di file, quali data di creazione e data di modifica, utili con le API di I/O dei file.10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • Una colonna Type che supporta la ricerca full-text e la ricerca semantica su file e documenti.A type column that supports full-text search and semantic search over files and documents.

  • Una tabella FileTable applica determinati vincoli e trigger definiti dal sistema per gestire la semantica degli spazi dei nomi dei file.A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • Quando il database è configurato per l'accesso non transazionale, la gerarchia di file e directory rappresentata nella tabella FileTable viene esposta sotto la condivisione di FILESTREAM configurata per l'istanza di SQL ServerSQL Server .When the database is configured for non-transactional access, the file and directory hierarchy represented in the FileTable is exposed under the FILESTREAM share configured for the SQL ServerSQL Server instance. In questo modo, viene fornito l'accesso al file system per applicazioni Windows.This provides file system access for Windows applications.

    Tra le caratteristiche aggiuntive delle tabelle FileTable sono incluse le seguenti:Some additional characteristics of FileTables include the following:

  • I dati di file e directory archiviati in una tabella FileTable vengono esposti tramite una condivisione di Windows per l'accesso non transazionale ai file per applicazioni basate su API Windows.The file and directory data stored in a FileTable is exposed through a Windows share for non-transactional file access for Windows API based applications. Per un'applicazione Windows, questa è simile a una condivisione normale con i file e le directory.For a Windows application, this looks like a normal share with its files and directories. Le applicazioni possono utilizzare un vasta gamma di API Windows per gestire i file e le directory inclusi in questa condivisione.Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • La gerarchia di directory rappresentata tramite la condivisione è una struttura di directory puramente logica gestita all'interno della tabella FileTable.The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • Le chiamate per creare o modificare un file o una directory tramite la condivisione di Windows vengono intercettate da un componente di SQL ServerSQL Server e applicate ai dati relazionali corrispondenti nella tabella FileTable.Calls to create or change a file or directory through the Windows share are intercepted by a SQL ServerSQL Server component and reflected in the corresponding relational data in the FileTable.

  • Le operazioni delle API Windows sono di natura non transazionale e non sono associate alle transazioni utente.Windows API operations are non-transactional in nature, and are not associated with user transactions. L'accesso transazionale ai dati FILESTREAM archiviati in una tabella FileTable, tuttavia, è completamente supportato, come nel caso di qualsiasi colonna FILESTREAM in una normale tabella.However, transactional access to FILESTREAM data stored in a FileTable is fully supported, as is the case for any FILESTREAM column in a regular table.

  • È inoltre possibile eseguire query su tabelle FileTable e aggiornarle tramite normale accesso Transact-SQLTransact-SQL .FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. Le tabelle FileTable sono inoltre integrate con gli strumenti di gestione di SQL ServerSQL Server e con caratteristiche quali il backup.They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

Ulteriori considerazioni sull'utilizzo di tabelle FileTable Additional Considerations for Using FileTables

Considerazioni sull'amministrazione Administrative Considerations

Informazioni su FILESTREAM e tabelle FileTableAbout FILESTREAM and FileTables

  • È necessario configurare tabelle FileTable separatamente da FILESTREAM.You configure FileTables separately from FILESTREAM. È pertanto possibile continuare a utilizzare la caratteristica FILESTREAM senza abilitare l'accesso non transazionale o creare tabelle FileTable.Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • Non è disponibile alcun accesso non transazionale a dati FILESTREAM se non tramite tabelle FileTable.There is no non-transactional access to FILESTREAM data except through FileTables. Quando si abilita l'accesso non transazionale, pertanto, il comportamento delle applicazioni e delle colonne FILESTREAM esistenti non subisce modifiche.Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

    Informazioni sulle tabelle FileTable e l'accesso non transazionaleAbout FileTables and non-transactional access

  • È possibile abilitare o disabilitare l'accesso non transazionale a livello di database.You can enable or disable non-transactional access at the database level.

  • È possibile configurare o ottimizzare l'accesso non transazionale a livello di database disabilitando o abilitando l'accesso in sola lettura o in lettura/scrittura.You can configure or fine-tune non-transactional access at the database level by turning it off, or by enabling read only or full read/write access.

Mancanza di supporto di file con mapping in memoria per le tabelle FileTable FileTables Do Not Support Memory-Mapped Files

Le tabelle FileTable non supportano file con mapping in memoria.FileTables do not support memory-mapped files. Blocco note e Paint sono due esempi comuni di applicazioni in cui vengono utilizzati file con mapping in memoria.Notepad and Paint are two common examples of applications that use memory-mapped files. Non è possibile utilizzare queste applicazioni nello stesso computer di SQL ServerSQL Server per aprire file archiviati in una tabella FileTable.You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. Tuttavia è possibile utilizzare queste applicazioni da un computer remoto per aprire file archiviati in una tabella FileTable, perché in queste circostanze la caratteristica con mapping in memoria non viene utilizzata.However you can use these applications from a remote computer to open files that are stored in a FileTable, because in these circumstances the memory-mapping feature is not used.

Abilitazione dei prerequisiti per la tabella FileTableEnable the Prerequisites for FileTable
Viene descritto come abilitare i prerequisiti per la creazione e l'utilizzo di tabelle FileTable.Describes how to enable the prerequisites for creating and using FileTables.

Creare, modificare e rilasciare FileTablesCreate, Alter, and Drop FileTables
Viene descritto come creare una nuova tabella FileTable o modificarne o eliminarne una esistente.Describes how to create a new FileTable, or alter or drop an existing FileTable.

Caricamento di file in FileTableLoad Files into FileTables
Viene descritto come caricare o eseguire la migrazione dei file in tabelle FileTable.Describes how to load or migrate files into FileTables.

Utilizzare directory e percorsi in FileTableWork with Directories and Paths in FileTables
Descrive la struttura di directory nella quale vengono archiviati i file in FileTable.Describes the directory structure in which the files are stored in FileTables.

Accesso a tabelle FileTable tramite Transact-SQLAccess FileTables with Transact-SQL
Viene descritto il funzionamento dei comandi Transact-SQL DML (Data Manipulation Language) con una tabella FileTable.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

Accedere alle tabelle FileTable con API di Input-Output dei fileAccess FileTables with File Input-Output APIs
Viene descritto il funzionamento dell'I/O del file system in una tabella FileTable.Describes how file system I/O works on a FileTable.

Gestione di tabelle FileTableManage FileTables
Vengono descritte attività amministrative comuni per la gestione di tabelle FileTable.Describes common administrative tasks for managing FileTables.

Schema delle tabelle FileTableFileTable Schema
Viene descritto lo schema predefinito e fisso di una tabella FileTable.Describes the pre-defined and fixed schema of a FileTable.

Compatibilità di FileTable con altre funzionalità di SQL ServerFileTable Compatibility with Other SQL Server Features
Viene descritto il funzionamento delle tabelle FileTable con altre caratteristiche di SQL Server.Describes how FileTables work with other features of SQL Server.

DDL FileTable, funzioni, stored Procedure e visteFileTable DDL, Functions, Stored Procedures, and Views
Vengono elencate le istruzioni Transact-SQLTransact-SQL e gli oggetti di database di SQL ServerSQL Server aggiunti o modificati per supportare la funzione FileTable.Lists the Transact-SQLTransact-SQL statements and the SQL ServerSQL Server database objects that have been added or changed to support the FileTable feature.