Partager via


FileTableRootPath (Transact-SQL)

S'applique à : SQL Server

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. La spécification de schema_name est également facultative. 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 pouvez avoir l’une des valeurs suivantes :

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

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Il s’agit de la valeur par défaut.
1 Retourne le nom de serveur non converti, par exemple :

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Retourne le chemin d'accès complet du serveur, par exemple :

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Type renvoyé

nvarchar(4000)

Lorsque la base de données appartient à un groupe de disponibilité Always On, la fonction FileTableRootPath retourne le nom de réseau virtuel (VNN) au lieu du nom de l’ordinateur.

Remarques d'ordre général

La fonction FileTableRootPath retourne NULL lorsque 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 active.

Pour plus d'informations, consultez Work with Directories and Paths in FileTables.

Meilleures pratiques

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. Au lieu de cela, obtenez le chemin d’accès complet d’un fichier au moment de l’exécution à l’aide des fonctions FileTableRootPath et GetFileNamespacePath , comme illustré dans l’exemple suivant. Par défaut, la fonction GetFileNamespacePath retourne le chemin relatif du fichier sous le chemin racine de la base de données.

USE MyDocumentDatabase;  
  
@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 nécessite :

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

  • db_datareader ou une autorisation ultérieure pour obtenir le chemin racine de la base de données active.

Exemples

Les exemples suivants montrent comment appeler la fonction FileTableRootPath .

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

Voir aussi

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