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