Partager via


FileTableRootPath (Transact-SQL)

Retourne le chemin d'accès UNC au niveau racine pour un FileTable spécifique ou pour la base de données actuelle.

Syntaxe

FileTableRootPath ( [ ‘[schema_name.]FileTable_name’ ], @option )

Arguments

  • FileTable_name
    Nom du FileTable. FileTable_name est de type nvarchar. Il s'agit d'un paramètre facultatif. La valeur par défaut est la base de données actuelle. schema_name est également facultatif. Vous pouvez passer NULL pour FileTable_name pour utiliser la valeur de paramètre par défaut

  • @option
    Expression entière qui définit comment le composant serveur du chemin d'accès doit être mis en forme. @option peut prendre l'une des valeurs suivantes :

    Valeur

    Description

    0

    Retourne le nom de serveur converti au format NetBIOS, par exemple :

    \\SERVERNAME\MSSQLSERVER\MyDocumentDB

    Il s'agit de la valeur par défaut.

    1

    Retourne le nom de serveur non converti, par exemple :

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    Retourne le chemin d'accès complet du serveur, par exemple :

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

Type de retour

nvarchar(4000)

Lorsque la base de données appartient à un groupe de disponibilité AlwaysOn, la fonction FileTableRootPath retourne le nom de réseau virtuel (VNN) à la place du nom d'ordinateur.

Remarques d'ordre général

La fonction FileTableRootPath retourne la valeur NULL si l'une des conditions suivantes est remplie :

  • La valeur de FileTable_name n'est pas valide.

  • L'appelant ne dispose pas d'autorisations suffisantes pour référencer la table spécifiée ou la base de données actuelle.

  • L'option FILESTREAM de database_directory n'est pas définie pour la base de données actuelle.

Pour plus d'informations, consultez Travailler avec des répertoires et des chemins d'accès dans FileTables.

Recommandations

Pour garder le code et les applications indépendantes de l'ordinateur actuel et de la base de données, évitez d'écrire du code qui contient des chemins d'accès de fichier absolus. À la place, obtenez le chemin d'accès complet à un fichier au moment de l'exécution à l'aide des fonctions FileTableRootPath et GetFileNamespacePath, comme indiqué dans l'exemple suivant. Par défaut, la fonction GetFileNamespacePath retourne le chemin d'accès relatif du fichier sous le chemin d'accès racine de la base de données.

USE MyDocumentDB;

@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);

SELECT @fullPath = @root + file_stream.GetFileNamespacePath()
FROM DocumentStore
WHERE Name = N’document.docx’;

Sécurité

Autorisations

La fonction FileTableRootPath requiert :

  • Autorisation SELECT sur le FileTable pour obtenir le chemin d'accès racine d'un FileTable spécifique.

  • db_datareader ou autorisation plus importante pour obtenir le chemin d'accès racine de la base de données actuelle.

Exemples

Les exemples suivants montrent comment appeler la fonction FileTableRootPath.

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');

Voir aussi

Concepts

Travailler avec des répertoires et des chemins d'accès dans FileTables