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