FileTableRootPath (Transact-SQL)
Aplica-se: SQL Server
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. FileTable_name é do tipo nvarchar. Esse é um parâmetro opcional. O valor padrão é o banco de dados atual. Especificar schema_name também é opcional. Você pode passar NULL para FileTable_name usar o valor do parâmetro padrão
@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\MyDocumentDatabase Este é o valor padrão. |
1 | Retorna o nome do servidor sem conversão, por exemplo:\\ServerName\MSSQLSERVER\MyDocumentDatabase |
2 | Retorna o caminho completo do servidor, por exemplo:\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase |
Tipo de retorno
nvarchar(4000)
Quando o banco de dados pertence a um grupo de disponibilidade Always On, a função FileTableRootPath retorna o VNN (nome da rede virtual) em vez do nome do computador.
Comentários gerais
A função FileTableRootPath retorna NULL quando uma das seguintes condições é verdadeira:
O valor de FileTable_name não é 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 está definida para o banco de dados atual.
Para obter mais informações, consulte Work with Directories and Paths in 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 usando as 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 MyDocumentDatabase;
@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.
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 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');