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 Questo è il 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.
Consigli per iniziare
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');