Compartir a través de


FileTableRootPath (Transact-SQL)

Se aplica a: SQL Server

Devuelve la ruta de acceso UNC del nivel raíz de un objeto FileTable específico o de la base de datos actual.

Sintaxis

  
FileTableRootPath ( [ '[schema_name.]FileTable_name' ], @option )  

Argumentos

FileTable_name
Nombre del FileTable. FileTable_name es de tipo nvarchar. Se trata de un parámetro opcional. El valor predeterminado es la base de datos actual. Especificar schema_name también es opcional. Puede pasar NULL para FileTable_name usar el valor de parámetro predeterminado.

@option
Expresión entera que define cómo se debe dar formato al componente de servidor de la ruta de acceso. @option puede tener uno de los siguientes valores:

Valor Descripción
0 Devuelve el nombre del servidor convertido a formato NetBIOS, por ejemplo:

\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase

Este es el valor predeterminado.
1 Devuelve el nombre del servidor sin la conversión, por ejemplo:

\\ServerName\MSSQLSERVER\MyDocumentDatabase
2 Devuelve la ruta de acceso al servidor completa, por ejemplo:

\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase

Tipo devuelto

nvarchar(4000)

Cuando la base de datos pertenece a un grupo de disponibilidad AlwaysOn, la función FileTableRootPath devuelve el nombre de red virtual (VNN) en lugar del nombre del equipo.

Notas generales

La función FileTableRootPath devuelve NULL cuando se cumple una de las condiciones siguientes:

  • El valor de FileTable_name no es válido.

  • El autor de la llamada no tiene suficientes permisos para hacer referencia a la tabla especificada o a la base de datos actual.

  • La opción FILESTREAM de database_directory no está establecida para la base de datos actual.

Para más información, consulte Work with Directories and Paths in FileTables.

Procedimientos recomendados

Para mantener independientes del equipo y de la base de datos actuales el código y las aplicaciones, evite escribir código basado en rutas de acceso absolutas de archivos. En su lugar, obtenga la ruta de acceso completa de un archivo en tiempo de ejecución mediante las funciones FileTableRootPath y GetFileNamespacePath juntas, como se muestra en el ejemplo siguiente. De forma predeterminada, la función GetFileNamespacePath devuelve la ruta de acceso relativa del archivo en la ruta de acceso raíz de la base de datos.

USE MyDocumentDatabase;  
  
@root varchar(100)  
SELECT @root = FileTableRootPath();  
@fullPath = varchar(1000);  
  
SELECT @fullPath = @root + file_stream.GetFileNamespacePath()  
FROM DocumentStore  
WHERE Name = N'document.docx';  

Seguridad

Permisos

La función FileTableRootPath requiere:

  • Permiso SELECT en el objeto FileTable para obtener la ruta de acceso raíz de un objeto FileTable específico.

  • db_datareader o un permiso superior para obtener la ruta de acceso raíz de la base de datos actual.

Ejemplos

En los ejemplos siguientes se muestra cómo llamar a la función 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');  

Consulte también

Work with Directories and Paths in FileTables