FileTableRootPath (Transact-SQL)
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 parametro è facoltativo. Il valore predefinito corrisponde al database corrente. Anche schema_name è un parametro facoltativo. È possibile passare NULL per FileTable_name per utilizzare il valore di parametro predefinito.@option
Espressione intera che definisce la formattazione del componente server del percorso. @option può disporre di uno dei valori seguenti:Valore
Descrizione
0
Restituisce il nome del server convertito in formato NetBIOS, ad esempio:
\\SERVERNAME\MSSQLSERVER\MyDocumentDB
Si tratta del valore predefinito.
1
Restituisce il nome del server senza conversione, ad esempio:
\\ServerName\MSSQLSERVER\MyDocumentDB
2
Restituisce il percorso completo del server, ad esempio:
\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB
Tipo restituito
nvarchar(4000)
Quando il database appartiene a un gruppo di disponibilità AlwaysOn, allora la funzione FileTableRootPath restituisce il nome di rete virtuale (VNN) invece del nome computer.
Osservazioni generali
La funzione FileTableRootPath restituisce NULL se si verifica una delle condizioni seguenti:
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 ulteriori informazioni, vedere Utilizzare directory e percorsi in FileTable.
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 utilizzando insieme 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 MyDocumentDB;
@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);
SELECT @fullPath = @root + file_stream.GetFileNamespacePath()
FROM DocumentStore
WHERE Name = N’document.docx’;
Sicurezza
Autorizzazioni
Per la funzione FileTableRootPath sono necessarie le autorizzazioni seguenti:
Autorizzazione SELECT per la tabella FileTable per ottenere il percorso radice di una tabella FileTable specifica.
db_datareader o autorizzazione superiore per ottenere il percorso radice per il database corrente.
Esempi
Negli esempi seguenti si illustra come chiamare la funzione FileTableRootPath.
USE MyDocumentDB;
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB”
SELECT FileTableRootPath();
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'dbo.MyFileTable');
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'MyFileTable');