Aktivieren der Voraussetzungen für FileTable
Gilt für:SQL Server
Beschreibt, wie die erforderlichen Komponenten zum Erstellen und Verwenden von FileTables aktiviert werden.
Aktivieren von Voraussetzungen für FileTable
Aktivieren Sie zum Aktivieren der erforderlichen Komponenten zum Erstellen und Verwenden von FileTables die folgenden Elemente:
Auf Instanzebene:
Auf Datenbankebene:
Aktivieren von FILESTREAM auf Instanzebene
FileTables erweitern die Funktionen des FILESTREAM-Features von SQL Server. Sie müssen FILESTREAM für datei-E/A-Zugriff auf Windows-Ebene und auf der Instanz von SQL Server aktivieren, bevor Sie FileTables erstellen und verwenden können.
Aktivieren von FILESTREAM auf Instanzebene
Informationen zum Aktivieren von FILESTREAM finden Sie unter Aktivieren und Konfigurieren von FILESTREAM.
Wenn Sie FILESTREAM auf Instanzebene aktivieren sp_configure
, müssen Sie die filestream_access_level
Option auf 2
. Weitere Informationen finden Sie unter FILESTREAM-Zugriffsebene (Serverkonfigurationsoption).
FILESTREAM über die Firewall zulassen
Informationen zum Zulassen von FILESTREAM durch die Firewall finden Sie unter Configure a Firewall for FILESTREAM Access.
Bereitstellen einer FILESTREAM-Dateigruppe auf Datenbankebene
Bevor Sie FileTables in einer Datenbank erstellen können, muss die Datenbank eine FILESTREAM-Dateigruppe haben. Weitere Informationen zu dieser Voraussetzung finden Sie unter Erstellen einer FILESTREAM-aktivierten Datenbank.
Aktivieren des nichttransactionalen Zugriffs auf Datenbankebene
Über FileTables können Windows-Anwendungen ein Windows-Dateihandle für FILESTREAM-Daten abrufen, ohne dass hierfür eine Transaktion erforderlich ist. Um diesen nichttransaktionsfreien Zugriff auf in SQL Server gespeicherte Dateien zu ermöglichen, müssen Sie für jede Datenbank, die FileTables enthält, die gewünschte Ebene des nichttransaktionellen Zugriffs auf Datenbankebene angeben.
Überprüfen, ob der nichttransaktionsfreie Zugriff in Datenbanken aktiviert ist
Fragen Sie die Katalogansicht sys.database_filestream_options (Transact-SQL) ab, und überprüfen Sie die non_transacted_access
Spalten.non_transacted_access_desc
SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc
FROM sys.database_filestream_options;
GO
Aktivieren des nichttransactionalen Zugriffs auf Datenbankebene
Die verfügbaren Ebenen des nichttransaktionellen Zugriffs sind FULL, READ_ONLY und OFF.
Angeben der Ebene des nichttransactionalen Zugriffs mit Transact-SQL
Rufen Sie beim Erstellen einer neuen Datenbank die CREATE DATABASE -Anweisung (SQL Server Transact-SQL) mit der NON_TRANSACTED_ACCESS
OPTION FILESTREAM auf.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Wenn Sie eine vorhandene Datenbank ändern, rufen Sie die ALTER DATABASE (Transact-SQL)-Anweisung mit der NON_TRANSACTED_ACCESS
OPTION FILESTREAM auf.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
Angeben der Ebene des nichttransactionalen Zugriffs mit SQL Server Management Studio
Sie können die Ebene des nichttransactionalen Zugriffs im Feld "Nicht transaktionenfreies Access " von FILESTREAM auf der Seite "Optionen " des Dialogfelds "Datenbankeigenschaften " angeben. Weitere Informationen zu diesem Dialogfeld finden Sie unter Datenbankeigenschaften (Optionsseite).
Angeben eines Verzeichnisses für FileTables auf Datenbankebene
Wenn Sie den nichttransaktionsfreien Zugriff auf Dateien auf Datenbankebene aktivieren, können Sie optional einen Verzeichnisnamen gleichzeitig mit der DIRECTORY_NAME
Option bereitstellen. Wenn Sie keinen Verzeichnisnamen angeben, wenn Sie nicht untransaktionalen Zugriff aktivieren, müssen Sie ihn später bereitstellen, bevor Sie FileTables in der Datenbank erstellen können.
In der FileTable-Ordnerhierarchie wird dieses Verzeichnis auf Datenbankebene das untergeordnete Element des Freigabenamens, das für FILESTREAM auf Instanzebene angegeben wurde, und das übergeordnete Element von den in der Datenbank erstellten FileTables. Weitere Informationen finden Sie unter Work with Directories and Paths in FileTables.
Angeben eines Verzeichnisses für FileTables auf Datenbankebene
Der angegebene Name muss in der Instanz für Verzeichnisse auf Datenbankebene eindeutig sein.
Angeben eines Verzeichnisses für FileTables mit Transact-SQL
Rufen Sie beim Erstellen einer neuen Datenbank die CREATE DATABASE -Anweisung (SQL Server Transact-SQL) mit der DIRECTORY_NAME
OPTION FILESTREAM auf.
CREATE DATABASE database_name
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Wenn Sie eine vorhandene Datenbank ändern, rufen Sie die ALTER DATABASE (Transact-SQL)-Anweisung mit der DIRECTORY_NAME
OPTION FILESTREAM auf. Wenn Sie diese Optionen verwenden, um den Verzeichnisnamen zu ändern, muss die Datenbank exklusiv gesperrt sein und darf keine offenen Dateihandles aufweisen.
ALTER DATABASE database_name
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'directory_name' );
GO
Rufen Sie beim Anfügen einer Datenbank die CREATE DATABASE -Anweisung (SQL Server Transact-SQL) mit der FOR ATTACH
Option und der DIRECTORY_NAME
FILESTREAM-Option auf.
CREATE DATABASE database_name
FOR ATTACH WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Wenn Sie eine Datenbank wiederherstellen, rufen Sie die RESTORE -Anweisung (Transact-SQL) mit der DIRECTORY_NAME
OPTION FILESTREAM auf.
RESTORE DATABASE database_name
WITH FILESTREAM ( DIRECTORY_NAME = N'directory_name' );
GO
Angeben eines Verzeichnisses für FileTables mit SQL Server Management Studio
Sie können im Feld FILESTREAM Verzeichnisname der Seite Optionen des Dialogfelds Datenbankeigenschaften einen Verzeichnisnamen angeben. Weitere Informationen zu diesem Dialogfeld finden Sie unter Datenbankeigenschaften (Optionsseite).
Anzeigen vorhandener Verzeichnisnamen für die Instanz
Um die Liste der vorhandenen Verzeichnisnamen für die Instanz anzuzeigen, fragen Sie die Katalogansicht sys.database_filestream_options (Transact-SQL) ab, und überprüfen Sie die filestream_database_directory_name
Spalte.
SELECT DB_NAME ( database_id ), directory_name
FROM sys.database_filestream_options;
GO
Anforderungen und Einschränkungen für das Verzeichnis auf Datenbankebene
Das Festlegen der
DIRECTORY_NAME
Option ist optional, wenn Sie anrufenCREATE DATABASE
oderALTER DATABASE
. Wenn Sie keinen Wert fürDIRECTORY_NAME
, dann ist der Verzeichnisname neu Standard s null. Sie können FileTables jedoch erst in der Datenbank erstellen, wenn Sie einen Wert aufDIRECTORY_NAME
Datenbankebene angeben.Der Verzeichnisname, den Sie angeben, muss den Anforderungen des Dateisystems im Hinblick auf einen gültigen Verzeichnisnamen entsprechen.
Wenn die Datenbank FileTables enthält, können Sie den
DIRECTORY_NAME
Wert nicht auf einen Nullwert zurücksetzen.Wenn Sie eine Datenbank anfügen oder wiederherstellen, schlägt der Vorgang fehl, wenn die neue Datenbank einen Wert aufweist, der
DIRECTORY_NAME
bereits in der Zielinstanz vorhanden ist. Geben Sie einen eindeutigen Wert fürDIRECTORY_NAME
den AufrufCREATE DATABASE FOR ATTACH
oderRESTORE DATABASE
die Angabe an.Wenn Sie ein Upgrade einer vorhandenen Datenbank durchführen, ist der Wert null
DIRECTORY_NAME
.Wenn Sie den nichttransaktionsfreien Zugriff auf Datenbankebene aktivieren oder deaktivieren, überprüft der Vorgang nicht, ob der Verzeichnisname angegeben wurde oder ob er eindeutig ist.
Wenn Sie eine Datenbank löschen, die für FileTables aktiviert wurde, werden das Verzeichnis auf Datenbankebene und alle Verzeichnisstrukturen aller FileTables darunter entfernt.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für