FileTables (SQL Server)FileTables (SQL Server)

La fonctionnalité FileTable apporte une prise en charge de l'espace de noms de fichier Windows et la compatibilité des applications Windows avec les données de fichier stockées dans 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 permet à une application d'intégrer ses composants de stockage et de gestion des données, et fournit des services SQL ServerSQL Server intégrés (notamment la recherche sémantique et en texte intégral) sur des données et des métadonnées non structurées.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.

En d'autres termes, vous pouvez maintenant stocker des fichiers et des documents dans des tables spéciales dans SQL ServerSQL Server , appelées FileTables, mais y accéder à partir d'applications Windows comme si ils avaient été stockés dans le système de fichiers, sans apporter de modifications à vos applications clientes.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 fonctionnalité FileTable s'appuie sur la technologie SQL ServerSQL Server FILESTREAM.The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. Pour en savoir plus sur FILESTREAM, consultez FILESTREAM (SQL Server).To learn more about FILESTREAM, see FILESTREAM (SQL Server).

Avantages de la fonctionnalité FileTable Benefits of the FileTable Feature

Les objectifs de la fonctionnalité FileTable incluent les éléments suivants :The goals of the FileTable feature include the following:

  • Compatibilité des API Windows pour les données de fichier stockées dans une base de données SQL ServerSQL Server .Windows API compatibility for file data stored within a SQL ServerSQL Server database. La compatibilité d'API Windows inclut ce qui suit :Windows API compatibility includes the following:

    • Accès en continu non transactionnel et mises à jour sur place aux données FILESTREAM.Non-transactional streaming access and in-place updates to FILESTREAM data.

    • Espace de noms hiérarchique de répertoires et fichiers.A hierarchical namespace of directories and files.

    • Stockage d'attributs de fichier, tels que la date de création et la date de modification.Storage of file attributes, such as created date and modified date.

    • Prise en charge des API de gestion de fichiers et de répertoires Windows.Support for Windows file and directory management APIs.

  • Compatibilité avec d'autres fonctionnalités SQL ServerSQL Server notamment des outils de gestion, des services et des fonctions de requête relationnelles sur FILESTREAM et les données d'attribut de fichier.Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

    Par conséquent, les FileTables mettent fin à un frein significatif à l'utilisation de SQL ServerSQL Server pour le stockage et la gestion de données non structurées qui résident actuellement sous la forme de fichiers sur des serveurs de fichiers.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. Les entreprises peuvent déplacer ces données depuis des serveurs de fichiers vers des FileTables afin de tirer parti des services et de l'administration intégrés fournis par 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. En même temps, elles peuvent assurer la compatibilité d'applications Windows pour leurs applications Windows existantes qui considèrent ces données en tant que fichiers dans le système de fichiers.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.

Présentation d'un FileTable What Is a FileTable?

SQL ServerSQL Server fournit une table de fichiersspéciale, également connue sous le nom de FileTable, pour les applications qui nécessitent un stockage de répertoires et de fichiers dans la base de données, avec la compatibilité avec les API Windows et un accès non transactionnel. 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. Un FileTable est une table utilisateur spécialisée avec un schéma prédéfini qui stocke des données FILESTREAM, ainsi que des informations de hiérarchie de fichiers et de répertoires et d'attribut de fichier.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.

Un FileTable offre les fonctionnalités suivantes :A FileTable provides the following functionality:

  • Un FileTable représente une hiérarchie de répertoires et de fichiers.A FileTable represents a hierarchy of directories and files. Il stocke des données relatives à tous les nœuds de cette hiérarchie, à la fois pour les répertoires et les fichiers qu'ils contiennent.It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. Cette hiérarchie démarre à partir d'un répertoire racine que vous spécifiez lors de la création du FileTable.This hierarchy starts from a root directory that you specify when you create the FileTable.

  • Chaque ligne d'un FileTable représente un fichier ou un répertoire.Every row in a FileTable represents a file or a directory.

  • Chaque ligne contient les éléments suivants.Every row contains the following items. Pour plus d'informations sur le schéma d’un FileTable, consultez Schéma de FileTable.For more information about the schema of a FileTable, see FileTable Schema.

    • Une colonnefile_stream pour les données de flux et un identificateur stream_id (GUID).Afile_stream column for stream data and a stream_id (GUID) identifier. (La colonne file_stream a la valeur NULL pour un répertoire.)(The file_stream column is NULL for a directory.)

    • Les colonnes path_locator et parent_path_locator pour la représentation et la maintenance de la hiérarchie de répertoires et de fichiers.Both path_locator and parent_path_locator columns for representing and maintaining the file and directory hierarchy.

    • 10 attributs de fichier tels que la date de création et la date de modification utiles avec les API d'E/S de fichier.10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • Une colonne de type qui prend en charge la recherche en texte intégral et la recherche sémantique sur les fichiers et les documents.A type column that supports full-text search and semantic search over files and documents.

  • Un FileTable applique certains déclencheurs et contraintes définies par le système afin de gérer la sémantique de l'espace de noms de fichier.A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • Lorsque la base de données est configurée pour un accès non transactionnel, la hiérarchie de répertoires et de fichiers représentée dans le FileTable est exposée sous le partage FILESTREAM configuré pour l'instance de 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. Cela fournit l'accès au système de fichiers pour les applications Windows.This provides file system access for Windows applications.

    Voici quelques caractéristiques supplémentaires des FileTables :Some additional characteristics of FileTables include the following:

  • Les données de fichier et de répertoire stockées dans un FileTable sont exposées via un partage Windows pour l'accès aux fichiers non transactionnel pour les applications basées sur des 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. Pour une application Windows, cela ressemble à un partage normal avec ses fichiers et répertoires.For a Windows application, this looks like a normal share with its files and directories. Les applications peuvent utiliser un ensemble complet d'API Windows pour gérer les fichiers et les répertoires sous ce partage.Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • La hiérarchie de répertoires exposée en surface via le partage est une structure de répertoires purement logique maintenue dans le FileTable.The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • Les appels pour créer ou modifier un fichier ou un répertoire via le partage Windows sont interceptés par un composant SQL ServerSQL Server et reflétés dans les données relationnelles correspondantes du 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.

  • Les opérations d'API Windows ne sont pas transactionnelles par nature et ne sont pas associées à des transactions utilisateur.Windows API operations are non-transactional in nature, and are not associated with user transactions. Toutefois, l'accès transactionnel aux données FILESTREAM stockées dans un FileTable est entièrement pris en charge, comme c'est le cas pour toute colonne FILESTREAM d'une table standard.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.

  • Les FileTables peuvent également être interrogés et mis à jour via un accès Transact-SQLTransact-SQL normal.FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. Ils sont également intégrés aux outils de gestion SQL ServerSQL Server et à des fonctionnalités telles que la sauvegarde.They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

Remarques supplémentaires concernant l'utilisation de FileTables Additional Considerations for Using FileTables

Considérations d'ordre administratif Administrative Considerations

À propos de FILESTREAM et des FileTablesAbout FILESTREAM and FileTables

  • Vous configurez des FileTables de manière distincte de FILESTREAM.You configure FileTables separately from FILESTREAM. Par conséquent, vous pouvez continuer à utiliser la fonctionnalité FILESTREAM sans activer l'accès non transactionnel ou créer de FileTables.Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • Il n'existe aucun accès non transactionnel aux données FILESTREAM sauf via des FileTables.There is no non-transactional access to FILESTREAM data except through FileTables. Par conséquent, lorsque vous activez l'accès non transactionnel, le comportement des applications et des colonnes FILESTREAM existantes n'est pas affecté.Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

    À propos de FileTables et de l'accès non transactionnelAbout FileTables and non-transactional access

  • Vous pouvez activer ou désactiver l'accès non transactionnel au niveau de la base de données.You can enable or disable non-transactional access at the database level.

  • Vous pouvez configurer ou définir avec précision l'accès non transactionnel au niveau de la base de données en le désactivant, ou en activant l'accès en lecture seule ou l'accès en lecture/écriture intégral.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.

Les FileTables ne prennent pas en charge les fichiers mappés en mémoire FileTables Do Not Support Memory-Mapped Files

Les FileTables ne prennent pas en charge les fichiers mappés en mémoireFileTables do not support memory-mapped files. Les applications Bloc-notes et Peinture sont deux exemples classiques d'applications qui utilisent les fichiers mappés en mémoire.Notepad and Paint are two common examples of applications that use memory-mapped files. Vous ne pouvez pas utiliser ces applications sur le même ordinateur que SQL ServerSQL Server pour ouvrir des fichiers stockés dans un FileTable.You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. Toutefois, vous pouvez utiliser ces applications à partir d'un ordinateur distant afin d'ouvrir des fichiers stockés dans un FileTable, car dans ces circonstances, la fonctionnalité de mappage en mémoire n'est pas utilisée.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.

Activer les conditions préalables pour les FileTablesEnable the Prerequisites for FileTable
Décrit la manière de satisfaire aux conditions préalables en vue de la création et de l'utilisation de FileTables.Describes how to enable the prerequisites for creating and using FileTables.

Créer, modifier et supprimer des FileTablesCreate, Alter, and Drop FileTables
Décrit la procédure de création d'un nouveau FileTable, ou de modification ou de suppression d'un FileTable existant.Describes how to create a new FileTable, or alter or drop an existing FileTable.

Charger des fichiers dans FileTablesLoad Files into FileTables
Explique comment charger ou migrer des fichiers dans FileTables.Describes how to load or migrate files into FileTables.

Travailler avec des répertoires et des chemins d'accès dans FileTablesWork with Directories and Paths in FileTables
Décrit la structure de répertoires dans laquelle les fichiers sont stockés dans FileTables.Describes the directory structure in which the files are stored in FileTables.

Accéder aux FileTables avec Transact-SQLAccess FileTables with Transact-SQL
Décrit le fonctionnement des commandes DML (langage de manipulation de données) Transact-SQL sur des FileTables.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

Accéder aux FileTables avec des API d’entrée-sortie de fichierAccess FileTables with File Input-Output APIs
Décrit le fonctionnement des E/S du système de fichiers sur un FileTable.Describes how file system I/O works on a FileTable.

Gérer des FileTablesManage FileTables
Décrit les tâches d'administration courantes permettant de gérer des FileTables.Describes common administrative tasks for managing FileTables.

Schéma de FileTableFileTable Schema
Décrit le schéma prédéfini et fixe d'un FileTable.Describes the pre-defined and fixed schema of a FileTable.

Compatibilité de FileTable avec d'autres fonctionnalités SQL ServerFileTable Compatibility with Other SQL Server Features
Décrit le fonctionnement de FileTables avec d'autres fonctionnalités de SQL Server.Describes how FileTables work with other features of SQL Server.

DDL, fonctions, procédures stockées et vues FileTableFileTable DDL, Functions, Stored Procedures, and Views
Répertorie les instructions Transact-SQLTransact-SQL et les objets de base de données SQL ServerSQL Server qui ont été ajoutés ou modifiés afin de prendre en charge la fonctionnalité 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.