Condividi tramite


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');

Vedere anche

Concetti

Utilizzare directory e percorsi in FileTable