FileTables (SQL Server)FileTables (SQL Server)

Die FileTable-Funktion bietet für die in SQL ServerSQL Server gespeicherten Dateidaten Unterstützung für den Windows-Dateinamespace und die Kompatibilität mit Windows-Anwendungen.The FileTable feature brings support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL ServerSQL Server. Mit FileTable können das Speichersystem und die Datenverwaltungskomponenten einer Anwendung integriert werden. Zudem werden integrierte SQL ServerSQL Server -Dienste (z. B. Volltextsuche und semantische Suche) über unstrukturierte Daten und Metadaten bereitgestellt.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.

So können Sie Dateien und Dokumente in besonderen Tabellen in SQL ServerSQL Server speichern, die als FileTables bezeichnet werden, und auf diese über Windows-Anwendungen zugreifen, so als ob sie im Dateisystem gespeichert wären, ohne Clientanwendungen ändern zu müssen.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.

Die FileTable-Funktion basiert auf der SQL ServerSQL Server FILESTREAM-Technologie.The FileTable feature builds on top of SQL ServerSQL Server FILESTREAM technology. Weitere Informationen zu FILESTREAM finden Sie unter FILESTREAM (SQL Server).To learn more about FILESTREAM, see FILESTREAM (SQL Server).

Vorteile der FileTable-Funktion Benefits of the FileTable Feature

Die Ziele der FileTable-Funktion umfassen Folgendes:The goals of the FileTable feature include the following:

  • Windows-API-Kompatibilität für Dateidaten, die in einer SQL ServerSQL Server -Datenbank gespeichert sind.Windows API compatibility for file data stored within a SQL ServerSQL Server database. Die Windows-API-Kompatibilität schließt Folgendes ein:Windows API compatibility includes the following:

    • Nicht transaktionaler Streamingzugriff und direkte Updates an FILESTREAM-Daten.Non-transactional streaming access and in-place updates to FILESTREAM data.

    • Ein hierarchischer Namespace von Verzeichnissen und Dateien.A hierarchical namespace of directories and files.

    • Speichern von Dateiattributen, z. B. Erstellungsdatum und Änderungsdatum.Storage of file attributes, such as created date and modified date.

    • Unterstützung von APIs für die Windows-Datei- und Verzeichnisverwaltung.Support for Windows file and directory management APIs.

  • Kompatibilität mit anderen SQL ServerSQL Server -Funktionen, einschließlich Verwaltungstools, Diensten und relationalen Abfragefunktionen über FILESTREAM und Dateiattributdaten.Compatibility with other SQL ServerSQL Server features including management tools, services, and relational query capabilities over FILESTREAM and file attribute data.

    FileTables beseitigen ein großes Hindernis bei der Verwendung von SQL ServerSQL Server zum Speichern und Verwalten unstrukturierter Daten, die zu aktuell als Dateien auf Dateiservern gespeichert sind.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. Unternehmen können diesen Daten von Dateiservern in FileTables verschieben, um die von SQL ServerSQL Serverbereitgestellten integrierten Verwaltungsfunktionen und Dienste verwenden zu können.Enterprises can move this data from file servers into FileTables to take advantage of integrated administration and services provided by SQL ServerSQL Server. Gleichzeitig kann die Windows-Anwendungskompatibilität für vorhandene Windows-Anwendungen aufrechterhalten werden, die diese Daten als Dateien im Dateisystem betrachten.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.

Was sind FileTables? What Is a FileTable?

SQL ServerSQL Server bietet eine besondere Dateitabelle– auch als FileTablebezeichnet – für Anwendungen, für die ein Datei- und Verzeichnisspeicher in der Datenbank mit Windows-API-Kompatibilität und nicht transaktionsbasiertem Zugriff erforderlich ist. 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. FileTables sind spezielle Benutzertabellen mit einem vordefinierten Schema. Darin können FILESTREAM-Daten, Informationen zur Datei- und Verzeichnishierarchie sowie Dateiattribute gespeichert werden.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.

Eine FileTable bietet die folgende Funktionalität:A FileTable provides the following functionality:

  • Eine FileTable stellt eine Hierarchie von Verzeichnissen und Dateien dar.A FileTable represents a hierarchy of directories and files. Sie speichert Daten zu allen Knoten in dieser Hierarchie, sowohl für Verzeichnisse als auch für die Dateien, die sie enthält.It stores data related to all the nodes in that hierarchy, for both directories and the files they contain. Diese Hierarchie beginnt bei einem Stammverzeichnis, das Sie angeben, wenn Sie die FileTable erstellen.This hierarchy starts from a root directory that you specify when you create the FileTable.

  • Jede Zeile in einer FileTable stellt eine Datei oder ein Verzeichnis dar.Every row in a FileTable represents a file or a directory.

  • Jede Zeile enthält die im Folgenden aufgeführten Elemente.Every row contains the following items. Weitere Informationen zum Schema einer FileTable finden Sie unter FileTable Schema.For more information about the schema of a FileTable, see FileTable Schema.

    • Einefile_stream -Spalte für Datenstromdaten und ein stream_id -Bezeichner (GUID).Afile_stream column for stream data and a stream_id (GUID) identifier. (Die file_stream -Spalte für ein Verzeichnis ist NULL.)(The file_stream column is NULL for a directory.)

    • Sowohl die path_locator -Spalte als auch die parent_path_locator -Spalte zur Darstellung und Verwaltung der Datei- und Verzeichnishierarchie.Both path_locator and parent_path_locator columns for representing and maintaining the file and directory hierarchy.

    • 10 Dateiattribute, z. B. Erstellungsdatum und Änderungsdatum, die von Datei-E/A-APIs benötigt werden.10 file attributes such as created date and modified date that are useful with file I/O APIs.

    • Eine Typspalte, die die Volltextsuche und die semantische Suche für Dateien und Dokumente unterstützt.A type column that supports full-text search and semantic search over files and documents.

  • Eine FileTable erzwingt bestimmte systemdefinierte Einschränkungen und Trigger, um die Dateinamespacesemantik beizubehalten.A FileTable enforces certain system-defined constraints and triggers to maintain file namespace semantics.

  • Wenn die Datenbank für nicht transaktionalen Zugriff konfiguriert ist, wird die in der FileTable dargestellte Datei- und Verzeichnishierarchie in der für die SQL ServerSQL Server -Instanz konfigurierten FILESTREAM-Freigabe verfügbar gemacht.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. Dadurch wird der Dateisystemzugriff für Windows-Anwendungen bereitgestellt.This provides file system access for Windows applications.

    Einige zusätzliche Eigenschaften von FileTables umfassen Folgendes:Some additional characteristics of FileTables include the following:

  • Die Datei- und Verzeichnisdaten, die in einer FileTable gespeichert sind, werden durch eine Windows-Freigabe für nicht transaktionalen Dateizugriff für Windows-API-basierte Anwendungen verfügbar gemacht.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. Für eine Windows-Anwendung sieht dies wie eine normale Freigabe mit Dateien und Verzeichnissen aus.For a Windows application, this looks like a normal share with its files and directories. Anwendungen können die Dateien und die Verzeichnisse in dieser Freigabe mithilfe eines umfangreichen Satzes von Windows-APIs verwalten.Applications can use a rich set of Windows APIs to manage the files and directories under this share.

  • Bei der Verzeichnishierarchie, die über die Freigabe angegeben wird, handelt es sich um eine rein logische Verzeichnisstruktur, die innerhalb der FileTable beibehalten wird.The directory hierarchy surfaced through the share is a purely logical directory structure that is maintained within the FileTable.

  • Aufrufe zum Erstellen oder Ändern einer Datei oder eines Verzeichnisses über die Windows-Freigabe werden von einer SQL ServerSQL Server -Komponente abgefangen und in der FileTable in den entsprechenden relationalen Daten wiedergegeben.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.

  • Windows-API-Vorgänge sind von ihrem Wesen her nicht transaktional und sind nicht Benutzertransaktionen zugeordnet.Windows API operations are non-transactional in nature, and are not associated with user transactions. Transaktionszugriff auf FILESTREAM-Daten, die in einer FileTable gespeichert sind, wird jedoch vollständig unterstützt, wie dies auch bei FILESTREAM-Spalten in einer regulären Tabelle der Fall ist.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.

  • FileTables können auch über den normalen Transact-SQLTransact-SQL -Zugriff abgefragt und aktualisiert werden.FileTables can also be queried and updated through normal Transact-SQLTransact-SQL access. Sie werden auch in SQL ServerSQL Server -Verwaltungstools und -funktionen, z. B. die Sicherung, integriert.They are also integrated with SQL ServerSQL Server management tools, and features such as backup.

Weitere Überlegungen zum Verwenden von FileTables Additional Considerations for Using FileTables

Überlegungen zur Verwaltung Administrative Considerations

Informationen zu FILESTREAM und FileTablesAbout FILESTREAM and FileTables

  • FileTables werden getrennt von FILESTREAM konfiguriert.You configure FileTables separately from FILESTREAM. Sie können daher weiterhin die FILESTREAM-Funktion verwenden, ohne den nicht transaktionalem Zugriff zu aktivieren oder FileTables zu erstellen.Therefore you can continue to use the FILESTREAM feature without enabling non-transactional access or creating FileTables.

  • Es gibt keinen nicht transaktionalen Zugriff auf FILESTREAM-Daten außer durch FileTables.There is no non-transactional access to FILESTREAM data except through FileTables. Wenn Sie daher den nicht transaktionalen Zugriff aktivieren, hat dies keine Auswirkungen auf das Verhalten vorhandener FILESTREAM-Spalten und Anwendungen.Therefore, when you enable non-transactional access, the behavior of existing FILESTREAM columns and applications is not affected.

    Informationen zu FileTables und nicht transaktionalem ZugriffAbout FileTables and non-transactional access

  • Sie können den nicht transaktionalen Zugriff auf Datenbankebene aktivieren bzw. deaktivieren.You can enable or disable non-transactional access at the database level.

  • Der nicht transaktionale Zugriff kann auf Datenbankebene konfiguriert oder optimiert werden, indem Sie ihn ausschalten oder nur den Lesezugriff bzw. den vollständigen Lese-/Schreibzugriff aktivieren.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.

FileTables unterstützen keine Speicherabbilddateien FileTables Do Not Support Memory-Mapped Files

FileTables unterstützen keine SpeicherabbilddateienFileTables do not support memory-mapped files. Editor und Paint sind zwei häufige Beispiele für Anwendungen, die Speicherabbilddateien verwenden.Notepad and Paint are two common examples of applications that use memory-mapped files. Sie können diese Anwendungen nicht auf dem gleichen Computer wie SQL ServerSQL Server verwenden, um in einer FileTable gespeicherte Dateien zu öffnen.You cannot use these applications on the same computer as SQL ServerSQL Server to open files that are stored in a FileTable. Sie können diese Anwendungen jedoch auf einem Remotecomputer verwenden, um in einer FileTable gespeicherte Dateien zu öffnen, da die Speicherabbildfunktion unter diesen Umständen nicht verwendet wird.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.

Aktivieren der erforderlichen Komponenten für FileTableEnable the Prerequisites for FileTable
Beschreibt, wie die erforderlichen Komponenten zum Erstellen und Verwenden von FileTables aktiviert werden.Describes how to enable the prerequisites for creating and using FileTables.

Erstellen, Ändern und Löschen von FileTablesCreate, Alter, and Drop FileTables
Beschreibt, wie eine neue FileTable erstellt bzw. eine vorhandene FileTable geändert oder gelöscht wird.Describes how to create a new FileTable, or alter or drop an existing FileTable.

Laden von Dateien in FileTablesLoad Files into FileTables
Beschreibt, wie Dateien in FileTables geladen und migriert werden.Describes how to load or migrate files into FileTables.

Arbeiten mit Verzeichnissen und Pfaden in FileTablesWork with Directories and Paths in FileTables
Beschreibt die Verzeichnisstruktur, mit der die Dateien in FileTables gespeichert werden.Describes the directory structure in which the files are stored in FileTables.

Zugreifen auf FileTables mit Transact-SQLAccess FileTables with Transact-SQL
Beschreibt, wie die Befehle der Transact-SQL-Datenbearbeitungssprache (Data Manipulation Language, DML) mit FileTables verwendet werden.Describes how Transact-SQL data manipulation language (DML) commands work with FileTables.

Zugreifen auf FileTables mit Datei-E/A-APIsAccess FileTables with File Input-Output APIs
Beschreibt, wie Dateisystem-E/A in einer FileTable funktioniert.Describes how file system I/O works on a FileTable.

Verwalten von FileTablesManage FileTables
Beschreibt allgemeine administrative Tasks zum Verwalten von FileTables.Describes common administrative tasks for managing FileTables.

FileTable SchemaFileTable Schema
Beschreibt das vordefinierte und feste Schema einer FileTable.Describes the pre-defined and fixed schema of a FileTable.

FileTable-Kompatibilität mit anderen SQL Server-FunktionenFileTable Compatibility with Other SQL Server Features
Beschreibt, wie FileTables mit anderen Funktionen von SQL Server funktionieren.Describes how FileTables work with other features of SQL Server.

FileTable-DDL, Funktionen, gespeicherte Prozeduren und SichtenFileTable DDL, Functions, Stored Procedures, and Views
Listet die Transact-SQLTransact-SQL -Anweisungen und die SQL ServerSQL Server -Datenbankobjekte auf, die zur Unterstützung der FileTable-Funktion hinzugefügt oder geändert wurden.Lists the Transact-SQLTransact-SQL statements and the SQL ServerSQL Server database objects that have been added or changed to support the FileTable feature.