FileTableRootPath (Transact-SQL)

Dotyczy:SQL Server

Zwraca ścieżkę UNC na poziomie rootowym dla konkretnej Tabeli Plików lub dla bieżącej bazy danych.

Syntax

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

Arguments

FileTable_name
Nazwa FileTable. FileTable_name jest typu nvarchar. Jest to opcjonalny parametr. Domyślną wartością jest aktualna baza danych. Określenie schema_name jest również opcjonalne. Możesz przekazać NULL, aby FileTable_name użył domyślnej wartości parametru

@option
Wyrażenie całkowitoliczbowe, które definiuje, jak powinien być sformatowany komponent serwera ścieżki. @option może mieć jedną z następujących wartości:

Wartość Description
0 Zwraca nazwę serwera przekonwertowaną na format NetBIOS, na przykład:

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Jest to wartość domyślna.
1 Zwraca nazwę serwera bez konwersji, na przykład:

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Zwraca pełną ścieżkę serwera, na przykład:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Zwracany typ

nvarchar(4000)

Gdy baza danych należy do grupy dostępności Always On, funkcja FileTableRootPath zwraca nazwę sieci wirtualnej (VNN) zamiast nazwy komputera.

Uwagi ogólne

Funkcja FileTableRootPath zwraca NULL, gdy spełniony jest jeden z następujących warunków:

  • Wartość FileTable_name nie jest ważna.

  • Wywołujący nie ma wystarczających uprawnień, aby odwołać się do określonej tabeli lub aktualnej bazy danych.

  • Opcja FILESTREAM database_directory nie jest ustawiona dla bieżącej bazy danych.

Aby uzyskać więcej informacji, zobacz Praca z katalogami i ścieżkami w tabelach plików.

Najlepsze praktyki

Aby utrzymać kod i aplikacje niezależne od bieżącego komputera i bazy danych, unikaj pisania kodu opartego na absolutnych ścieżkach plików. Zamiast tego uzyskaj pełną ścieżkę dla pliku w czasie działania, używając funkcji FileTableRootPath i GetFileNamespacePath razem, jak pokazano w poniższym przykładzie. Domyślnie funkcja GetFileNamespacePath zwraca względną ścieżkę pliku pod ścieżką główną bazy danych.

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

Zabezpieczenia

Permissions

Funkcja FileTableRootPath wymaga:

  • WYBIERZ uprawnienia w FileTable, aby uzyskać ścieżkę główną konkretnej FileTable.

  • db_datareader lub wyższe uprawnienia do uzyskania ścieżki głównej dla bieżącej bazy danych.

Examples

Poniższe przykłady pokazują, jak wywołać funkcję 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');