Share via


FileTableRootPath (Transact-SQL)

Si applica a:SQL Server

Restituisce il percorso UNC di livello radice per una tabella FileTable specifica o per il database corrente.

Sintassi

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

Argomenti

FileTable_name
Nome dell'oggetto FileTable. FileTable_name è di tipo nvarchar. Questo è un parametro opzionale. Il valore predefinito corrisponde al database corrente. È anche facoltativo specificare schema_name . È possibile passare NULL per FileTable_name per usare il valore del parametro predefinito

@option
Espressione Integer che definisce la formattazione del componente server del percorso. @option può avere uno dei valori seguenti:

Valore Descrizione
0 Restituisce il nome del server convertito in formato NetBIOS, ad esempio:

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Si tratta del valore predefinito.
1 Restituisce il nome del server senza conversione, ad esempio:

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Restituisce il percorso completo del server, ad esempio:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Tipo restituito

nvarchar(4000)

Quando il database appartiene a un gruppo di disponibilità AlwaysOn, la funzione FileTableRootPath restituisce il nome della rete virtuale anziché il nome del computer.

Osservazioni generali

La funzione FileTableRootPath restituisce NULL quando una delle condizioni seguenti è vera:

  • Il valore di FileTable_name non è valido.

  • Il chiamante non dispone delle autorizzazioni sufficienti per fare riferimento alla tabella specificata o al database corrente.

  • L'opzione FILESTREAM di database_directory non è impostata per il database corrente.

Per altre informazioni, vedere Work with Directories and Paths in FileTables.

Procedure consigliate

Per mantenere il codice e le applicazioni indipendenti dal database e dal computer correnti, evitare di scrivere codice basato su percorsi di file assoluti. Ottenere invece il percorso completo per un file in fase di esecuzione usando le funzioni FileTableRootPath e GetFileNamespacePath, come illustrato nell'esempio seguente. Per impostazione predefinita, la funzione GetFileNamespacePath restituisce il percorso relativo del file all'interno del percorso radice per il 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';  

Sicurezza

Autorizzazioni

La funzione FileTableRootPath richiede:

  • Autorizzazione SELECT per la tabella FileTable per ottenere il percorso radice di una tabella FileTable specifica.

  • db_datareader o versione successiva per ottenere il percorso radice per il database corrente.

Esempi

Negli esempi seguenti viene illustrato come chiamare la funzione 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');  

Vedi anche

Usare directory e percorsi in FileTable