Compartir a través de


FileTableRootPath (Transact-SQL)

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 que FileTable_name utilice 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 valores siguientes:

    Valor

    Descripción

    0

    Devuelve el nombre del servidor convertido a formato NetBIOS, por ejemplo:

    \\SERVERNAME\MSSQLSERVER\MyDocumentDB

    Es el valor predeterminado.

    1

    Devuelve el nombre del servidor sin la conversión, por ejemplo:

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    Devuelve la ruta de acceso al servidor completa, por ejemplo:

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

Tipo de valor 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.

Observaciones generales

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

  • 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 obtener más información, vea Trabajar con directorios y rutas de acceso de 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 utilizando conjuntamente las funciones FileTableRootPath y GetFileNamespacePath, como se muestra en el siguiente ejemplo. 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 MyDocumentDB;

@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.

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

Ejemplos

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

Vea también

Conceptos

Trabajar con directorios y rutas de acceso de FileTables