FileTableRootPath (Transact-SQL)

Van toepassing op:SQL Server

Geeft het root-niveau UNC-pad terug voor een specifieke FileTable of voor de huidige database.

Syntax

  
FileTableRootPath ( [ '[schema_name.]FileTable_name' ], @option )  

Arguments

FileTable_name
De naam van de FileTable. FileTable_name is van het type nvarchar. Dit is een optionele parameter. De standaardwaarde is de huidige database. Het specificeren van schema_name is ook optioneel. Je kunt NULL doorgeven zodat FileTable_name de standaardparameterwaarde gebruikt

@option
Een integer-expressie die definieert hoe het servercomponent van het pad moet worden opgemaakt. @option kan een van de volgende waarden hebben:

Value Description
0 Geeft bijvoorbeeld de servernaam terug die is omgezet naar NetBIOS-formaat:

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Dit is de standaardwaarde.
1 Geeft de servernaam terug zonder conversie, bijvoorbeeld:

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Geeft het volledige serverpad terug, bijvoorbeeld:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Retourtype

nvarchar(4000)

Wanneer de database behoort tot een Always On-beschikbaarheidsgroep, geeft de functie FileTableRootPath de virtuele netwerknaam (VNN) terug in plaats van de naam van de computer.

Algemene opmerkingen

De functie FileTableRootPath geeft NULL terug wanneer een van de volgende voorwaarden waar is:

  • De waarde van FileTable_name is niet geldig.

  • De aanroeper heeft niet voldoende toestemming om naar de opgegeven tabel of de huidige database te verwijzen.

  • De FILESTREAM-optie van database_directory is niet ingesteld voor de huidige database.

Zie Werken met mappen en paden in FileTablesvoor meer informatie.

Beste praktijken

Om code en applicaties onafhankelijk te houden van de huidige computer en database, vermijd het schrijven van code die afhankelijk is van absolute bestandspaden. In plaats daarvan krijg je het volledige pad van een bestand tijdens uitvoering door samen de functies FileTableRootPath en GetFileNamespacePath te gebruiken, zoals getoond in het volgende voorbeeld. Standaard geeft de functie GetFileNamespacePath het relatieve pad van het bestand terug onder het rootpad van de database.

USE MyDocumentDatabase;  
  
@root varchar(100)  
SELECT @root = FileTableRootPath();  
@fullPath = varchar(1000);  
  
SELECT @fullPath = @root + file_stream.GetFileNamespacePath()  
FROM DocumentStore  
WHERE Name = N'document.docx';  

Security

Permissions

De FileTableRootPath-functie vereist:

  • SELECT-toestemming op de FileTable om het rootpad van een specifieke FileTable te krijgen.

  • db_datareader of hogere toestemming om het rootpad voor de huidige database te krijgen.

Examples

De volgende voorbeelden laten zien hoe je de functie FileTableRootPath aanroept.

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