FileTableRootPath (Transact-SQL)

Gäller för:SQL Server

Returnerar root-level UNC-vägen för en specifik FileTable eller för den aktuella databasen.

Syntax

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

Arguments

FileTable_name
Namnet på FileTable. FileTable_name är av typen nvarchar. Det här är en valfri parameter. Standardvärdet är den aktuella databasen. Att specificera schema_name är också valfritt. Du kan skicka NULL för att FileTable_name använder standardparametervärdet

@option
Ett heltalsuttryck som definierar hur serverkomponenten i vägen ska formateras. @option kan ha ett av följande värden:

Value Description
0 Returnerar servernamnet konverterat till NetBIOS-format, till exempel:

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Detta är standardvärdet.
1 Returnerar servernamnet utan konvertering, till exempel:

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Returnerar hela servervägen, till exempel:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Returtyp

nvarchar(4000)

När databasen tillhör en Always On-tillgänglighetsgrupp returnerar funktionen FileTableRootPath det virtuella nätverksnamnet (VNN) istället för datorns namn.

Allmänna kommentarer

Funktionen FileTableRootPath returnerar NULL när ett av följande villkor är uppfyllt:

  • Värdet av FileTable_name är inte giltigt.

  • Anroparen har inte tillräcklig behörighet för att referera till den angivna tabellen eller den aktuella databasen.

  • FILESTREAM-alternativet database_directory är inte inställt för den aktuella databasen.

Mer information finns i Arbeta med kataloger och sökvägar i FileTables.

Metodtips

För att hålla kod och applikationer oberoende av den aktuella datorn och databasen, undvik att skriva kod som är beroende av absoluta filvägar. Istället hämtar du hela sökvägen för en fil vid körning genom att använda funktionerna FileTableRootPath och GetFileNamespacePath tillsammans, som visas i följande exempel. Som standard returnerar funktionen GetFileNamespacePath den relativa sökvägen för filen under rotvägen för databasen.

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

Funktionen FileTableRootPath kräver:

  • SELECT-behörigheten på FileTable för att hämta rotvägen för en specifik FileTable.

  • db_datareader eller högre behörighet för att hämta rotvägen för den aktuella databasen.

Examples

Följande exempel visar hur man anropar funktionen 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');