GetFileNamespacePath (Transact-SQL)
S’applique à :SQL Server
Retourne le chemin d'accès UNC d'un fichier ou d'un répertoire dans un FileTable.
Syntaxe
<column-name>.GetFileNamespacePath(is_full_path, @option)
Arguments
nom_colonne
Nom de colonne de la colonne VARBINARY(MAX) file_stream dans un FileTable.
La valeur de nom de colonne doit être un nom de colonne valide. Il ne peut pas s'agir d'une expression ni d'une valeur convertie à partir d'une colonne présentant un autre type de données.
is_full_path
Expression entière qui spécifie s'il faut retourner un chemin d'accès absolu ou relatif. is_full_path peut avoir l’une des valeurs suivantes :
Valeur | Description |
---|---|
0 | Retourne le chemin d'accès relatif dans le répertoire au niveau de la base de données. Il s'agit de la valeur par défaut |
1 | Retourne le chemin d'accès UNC complet, en commençant par \\computer_name . |
@option
Expression entière qui définit comment le composant serveur du chemin d'accès doit être mis en forme. @option peut 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 de retour
nvarchar(max)
Si l’instance SQL Server est en cluster dans un cluster de basculement, le nom de l’ordinateur retourné dans le cadre de ce chemin d’accès est le nom d’hôte virtuel de l’instance en cluster.
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
Le chemin d’accès que la fonction GetFileNamespacePath retourne est un chemin d’accès de répertoire logique ou de fichier au format suivant :
\\<machine>\<instance-level FILESTREAM share>\<database-level directory>\<FileTable directory>\...
Ce chemin logique ne correspond pas directement à un chemin d'accès NTFS physique. Il est traduit en chemin physique par le pilote de filtre de système de fichiers de FILESTREAM et l’agent FILESTREAM. Cette séparation entre le chemin logique et le chemin physique permet SQL Server réorganiser les données en interne sans affecter la validité du chemin.
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 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';
Notes
Exemples
Les exemples suivants montrent comment appeler la fonction GetFileNamespacePath pour obtenir le chemin UNC d’un fichier ou d’un répertoire dans un FileTable.
-- returns the relative path of the form "\MyFileTable\MyDocDirectory\document.docx"
SELECT file_stream.GetFileNamespacePath() AS FilePath FROM DocumentStore
WHERE Name = N'document.docx';
-- returns "\\MyServer\MSSQLSERVER\MyDocumentDatabase\MyFileTable\MyDocDirectory\document.docx"
SELECT file_stream.GetFileNamespacePath(1, Null) AS FilePath FROM DocumentStore
WHERE Name = N'document.docx';
Voir aussi
Travailler avec des répertoires et des chemins d’accès dans des FileTables
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour