Freigeben über


FileTableRootPath (Transact-SQL)

Gilt für: SQL Server

Gibt den UNC-Pfad auf der Stammebene für eine bestimmte FileTable oder die aktuelle Datenbank zurück.

Syntax

  
FileTableRootPath ( [ '[schema_name.]FileTable_name' ], @option )  

Argumente

FileTable_name
Der Name der FileTable. FileTable_name ist vom Typ nvarchar. Dies ist ein optionaler Parameter. Der Standardwert ist die aktuelle Datenbank. Die Angabe schema_name ist ebenfalls optional. Sie können NULL für FileTable_name übergeben, um den Standardwert des Parameters zu verwenden.

@option
Ein ganzzahliger Ausdruck, der definiert, wie die Serverkomponente des Pfads formatiert werden soll. @option kann einen der folgenden Werte aufweisen:

Wert Beschreibung
0 Gibt den in ein NetBIOS-Format konvertierten Servernamen zurück. Beispiel:

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Dies ist der Standardwert.
1 Gibt den Servernamen ohne Konvertierung zurück. Beispiel:

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Gibt den vollständigen Serverpfad zurück. Beispiel:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Rückgabetyp

nvarchar(4000)

Wenn die Datenbank zu einer Always On-Verfügbarkeitsgruppe gehört, gibt die FileTableRootPath-Funktion den virtuellen Netzwerknamen (Virtual Network Name, VNN) anstelle des Computernamens zurück.

Allgemeine Hinweise

Die FileTableRootPath-Funktion gibt NULL zurück, wenn eine der folgenden Bedingungen zutrifft:

  • Der Wert von FileTable_name ist ungültig.

  • Der Aufrufer hat keine ausreichende Berechtigung zum Verweisen auf die angegebene Tabelle oder die aktuelle Datenbank auf.

  • Die FILESTREAM-Option von database_directory ist für die aktuelle Datenbank nicht festgelegt.

Weitere Informationen finden Sie unter Work with Directories and Paths in FileTables.

Bewährte Methoden

Um Code und Anwendungen vom aktuellen Computer und von der Datenbank unabhängig zu halten, sollten Sie keinen Code schreiben, der auf absoluten Dateipfaden basiert. Rufen Sie stattdessen den vollständigen Pfad für eine Datei mit der Funktion FileTableRootPath und der Funktion GetFileNamespacePath zur Laufzeit ab, wie im folgenden Beispiel gezeigt. Die GetFileNamespacePath -Funktion gibt standardmäßig den relativen Pfad der Datei unter dem Stammpfad der Datenbank zurück.

USE MyDocumentDatabase;  
  
@root varchar(100)  
SELECT @root = FileTableRootPath();  
@fullPath = varchar(1000);  
  
SELECT @fullPath = @root + file_stream.GetFileNamespacePath()  
FROM DocumentStore  
WHERE Name = N'document.docx';  

Sicherheit

Berechtigungen

Die FileTableRootPath-Funktion erfordert Folgendes:

  • SELECT-Berechtigung für die FileTable, um den Stammpfad einer bestimmten FileTable abzurufen.

  • db_datareader oder höher die Berechtigung zum Abrufen des Stammpfads für die aktuelle Datenbank.

Beispiele

Die folgenden Beispiele zeigen, wie die FileTableRootPath-Funktion aufgerufen wird.

USE MyDocumentDatabase;  
-- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase"  
SELECT FileTableRootPath();  
  
-- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase\MyFileTable"  
SELECT FileTableRootPath(N'dbo.MyFileTable');  
  
-- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase\MyFileTable"  
SELECT FileTableRootPath(N'MyFileTable');  

Weitere Informationen

Verwenden von Verzeichnissen und Pfaden in FileTables