Share via


FileTableRootPath (Transact-SQL)

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 von FileTable. FileTable_name ist ein nvarchar-Typ. Dies ist ein optionaler Parameter. Der Standardwert ist die aktuelle Datenbank. Die Angabe von schema_name ist auch optional. Sie können NULL für FileTable_name übergeben, um den Standardparameterwert 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 Servernamen in ein NetBIOS-Format konvertiert zurück, z. B.:

    \\SERVERNAME\MSSQLSERVER\MyDocumentDB

    Dies ist der Standardwert.

    1

    Gibt den Servernamen ohne Konvertierung zurück, z. B.:

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    Gibt den vollständigen Serverpfad zurück, z. B.:

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

Rückgabetyp

nvarchar(4000)

Wenn die Datenbank zu einer AlwaysOn-Verfügbarkeitsgruppe gehört, dann gibt die FileTableRootPath-Funktion den virtuellen Netzwerknamen (VNN) statt des Computernamens zurück.

Allgemeine Hinweise

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

  • Der Wert von FileTable_name ist ungültig.

  • Der Aufrufer weist 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 Arbeiten mit Verzeichnissen und Pfaden in FileTables.

Bewährte Methoden

Um Code und Anwendungen vom aktuellen Computer und der Datenbank unabhängig zu halten, schreiben Sie keinen Code, der auf absoluten Dateipfaden basiert. Rufen Sie stattdessen den vollständigen Pfad für eine Datei mit der Funktion FileTableRootPath zusammen mit 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 für die Datenbank zurück.

USE MyDocumentDB;

@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 setzt Folgendes voraus:

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

  • db_datareader- oder höhere Berechtigung, um den Stammpfad für die aktuelle Datenbank abzurufen.

Beispiele

In den folgenden Beispielen wird veranschaulicht, wie die FileTableRootPath-Funktion aufgerufen wird.

USE MyDocumentDB;
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB”
SELECT FileTableRootPath();

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'dbo.MyFileTable');

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'MyFileTable');

Siehe auch

Konzepte

Arbeiten mit Verzeichnissen und Pfaden in FileTables