Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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\MyDocumentDatabaseDit 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');