Compartilhar via


FileTableRootPath (Transact-SQL)

Retorna o caminho UNC no nível raiz de uma FileTable específica ou do banco de dados atual.

Sintaxe

FileTableRootPath ( [ ‘[schema_name.]FileTable_name’ ], @option )

Argumentos

  • FileTable_name
    O nome da FileTable. O FileTable_name é do tipo nvarchar. Esse é um parâmetro opcional. O valor padrão é o banco de dados atual. A especificação de schema_name também é opcional. É possível passar NULL para FileTable_name para usar o valor padrão do parâmetro.

  • @option
    Uma expressão de inteiro que define como o componente do servidor do caminho deve ser formatado. @option pode ter um dos seguintes valores:

    Valor

    Descrição

    0

    Retorna o nome do servidor convertido no formato NetBIOS, por exemplo:

    \\SERVERNAME\MSSQLSERVER\MyDocumentDB

    Esse é o valor padrão.

    1

    Retorna o nome do servidor sem conversão, por exemplo:

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    Retorna o caminho completo do servidor, por exemplo:

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

Tipo de retorno

nvarchar(4000)

Quando o banco de dados pertence a um grupo de disponibilidade AlwaysOn, a função FileTableRootPath retorna o VNN (nome de rede virtual) em vez do nome do computador.

Comentários gerais

A função FileTableRootPath retornará NULL quando uma das condições a seguir for verdadeira:

  • O valor de FileTable_name não for válido.

  • O chamador não tiver permissão suficiente para referenciar a tabela especificada ou o banco de dados atual.

  • A opção FILESTREAM de database_directory não estiver definida para o banco de dados atual.

Para obter mais informações, consulte Trabalhar com diretórios e caminhos em FileTables.

Práticas recomendadas

Para manter código e aplicativos independentes do computador e do banco de dados atuais, evite escrever código baseado em caminhos de arquivo absolutos. Em vez disso, obtenha o caminho completo de um arquivo em tempo de execução com o uso das funções FileTableRootPath e GetFileNamespacePath juntas, conforme é mostrado no exemplo a seguir. Por padrão, a função GetFileNamespacePath retorna o caminho relativo do arquivo sob o caminho raiz do banco de dados.

USE MyDocumentDB;

@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);

SELECT @fullPath = @root + file_stream.GetFileNamespacePath()
FROM DocumentStore
WHERE Name = N’document.docx’;

Segurança

Permissões

A função FileTableRootPath requer:

  • A permissão SELECT no FileTable para obter o caminho raiz de um FileTable específico.

  • A permissão db_datareader ou superior para obter o caminho raiz do banco de dados atual.

Exemplos

Os exemplos a seguir mostram como chamar a função 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');

Consulte também

Conceitos

Trabalhar com diretórios e caminhos em FileTables