PathName (Transact-SQL)PathName (Transact-SQL)

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions)

Devuelve la ruta de acceso de un objeto binario grande (BLOB) FILESTREAM.Returns the path of a FILESTREAM binary large object (BLOB). La API de OpenSqlFilestream usa esta ruta de acceso para devolver un identificador que una aplicación puede usar para trabajar con los datos del BLOB mediante el uso de las API de Win32.The OpenSqlFilestream API uses this path to return a handle that an application can use to work with the BLOB data by using Win32 APIs. PathName es de solo lectura.PathName is read-only.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
column_name.PathName ( @option [ , use_replica_computer_name ] )  

ArgumentosArguments

column_namecolumn_name
Es el nombre de columna de una columna FileStream de tipo varbinary (Max) .Is the column name of a varbinary(max) FILESTREAM column. column_name debe ser un nombre de columna.column_name must be a column name. No puede ser una expresión ni el resultado de una instrucción CAST o CONVERT.It cannot be an expression nor the result of a CAST or CONVERT statement.

La solicitud del nombreruta para una columna de cualquier otro tipo de datos o de un columnthat varbinary (Max) no tiene el atributo de almacenamiento FileStream producirá un error en tiempo de compilación de la consulta.Requesting the PathName for a column of any other data type or for a varbinary(max) columnthat does not have the FILESTREAM storage attribute will cause a query compile-time error.

@desea@option
Expresión de tipo entero que define cómo se debe dar formato al componente de servidor de la ruta de acceso.An integer expression that defines how the server component of the path should be formatted. la @ opción puede ser uno de los valores siguientes.@option can be one of the following values. El valor predeterminado es 0.The default is 0.

ValueValue DescripciónDescription
00 Devuelve el nombre del servidor convertido al formato BIOS, por ejemplo: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9Returns the server name converted to BIOS format, for example: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9
11 Devuelve el nombre del servidor sin la conversión, por ejemplo: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1Returns the server name without conversion, for example: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
22 Devuelve la ruta de acceso al servidor completa, por ejemplo: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9Returns the complete server path, for example: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9

use_replica_computer_nameuse_replica_computer_name
Un valor de bit que define cómo se debe devolver el nombre del servidor en un Always On grupo de disponibilidad.A bit value that defines how the server name should be returned in an Always On availability group.

Cuando la base de datos no pertenece a un grupo de disponibilidad Always On, se omite el valor de este argumento.When the database does not belong to an Always On availability group, then the value of this argument is ignored. El nombre del equipo siempre se usa en la ruta.The computer name is always used in the path.

Cuando la base de datos pertenece a un grupo de disponibilidad de Always On, el valor de use_replica_computer_name tiene el efecto siguiente en la salida de la función PathName :When the database belongs to an Always On availability group, then the value of use_replica_computer_name has the following effect on the output of the PathName function:

ValueValue DescripciónDescription
No especificada.Not specified. La función devuelve el nombre de red virtual (VNN) en la ruta de acceso.The function returns the virtual network name (VNN) in the path.
00 La función devuelve el nombre de red virtual (VNN) en la ruta de acceso.The function returns the virtual network name (VNN) in the path.
11 La función devuelve el nombre del equipo en la ruta de acceso.The function returns the computer name in the path.

Tipo de valor devueltoReturn Type

nvarchar(max)nvarchar(max)

Valor devueltoReturn Value

El valor devuelto es la ruta de acceso de NETBIOS o la ruta de acceso lógica completa del BLOB.The returned value is the fully qualified logical or NETBIOS path of the BLOB. PathName no devuelve una dirección IP.PathName does not return an IP address. Se devuelve NULL cuando no se ha creado el BLOB FILESTREAM.NULL is returned when the FILESTREAM BLOB has not been created.

ObservacionesRemarks

La columna ROWGUID debe estar visible en cualquier consulta que llame a PathName.The ROWGUID column must be visible in any query that calls PathName.

Un BLOB FILESTREAM solo se puede crear utilizando Transact-SQLTransact-SQL.A FILESTREAM BLOB can only be created by using Transact-SQLTransact-SQL.

EjemplosExamples

A.A. Leer la ruta de acceso para un BLOB FILESTREAMReading the path for a FILESTREAM BLOB

En el ejemplo siguiente se asigna la propiedad PathName a una variable de tipo nvarchar(max).The following example assigns the PathName to an nvarchar(max) variable.

DECLARE @PathName nvarchar(max);  
SET @PathName = (  
    SELECT TOP 1 photo.PathName()  
    FROM dbo.Customer  
    WHERE LastName = 'CustomerName'  
    );  

B.B. Mostrar las rutas de acceso de BLOB FILESTREAM en una tablaDisplaying the paths for FILESTREAM BLOBs in a table

En el ejemplo siguiente se crean y muestran las rutas de acceso para tres BLOB FILESTREAM.The following example creates and displays the paths for three FILESTREAM BLOBs.

-- Create a FILESTREAM-enabled database.  
-- The c:\data directory must exist.  
CREATE DATABASE PathNameDB  
ON  
PRIMARY ( NAME = ArchX1,  
    FILENAME = 'c:\data\archdatP1.mdf'),  
FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM( NAME = ArchX3,  
    FILENAME = 'c:\data\filestreamP1')  
LOG ON  ( NAME = ArchlogX1,  
    FILENAME = 'c:\data\archlogP1.ldf');  
GO  
  
USE PathNameDB;  
GO  
  
-- Create a table, add some records, and  
-- create the associated FILESTREAM  
-- BLOB files.  
  
CREATE TABLE TABLE1  
    (  
        ID int,  
        RowGuidColumn UNIQUEIDENTIFIER  
                      NOT NULL UNIQUE ROWGUIDCOL,  
        FILESTREAMColumn varbinary(MAX) FILESTREAM  
    );  
GO  
  
INSERT INTO TABLE1 VALUES  
 (1, NEWID(), 0x00)  
,(2, NEWID(), 0x00)  
,(3, NEWID(), 0x00);  
GO  
  
SELECT FILESTREAMColumn.PathName() AS 'PathName' FROM TABLE1;  
  
--Results  
--PathName  
------------------------------------------------------------------------------------------------------------  
--\\SERVER\MSSQLSERVER\v1\PathNameExampleDB\dbo\TABLE1\FILESTREAMColumn\DD67C792-916E-4A76-8C8A-4A85DC5DB908  
--\\SERVER\MSSQLSERVER\v1\PathNameExampleDB\dbo\TABLE1\FILESTREAMColumn\2907122B-2560-4CB9-86DC-FBE7ABA1843B  
--\\SERVER\MSSQLSERVER\v1\PathNameExampleDB\dbo\TABLE1\FILESTREAMColumn\922BE0E0-CAB9-4403-90BF-945BD258E4BC  
--  
--(3 row(s) affected)  
GO  
  
--Drop the database to clean up.  
USE master;  
GO  
DROP DATABASE PathNameDB;  

Consulte tambiénSee Also

Binary Large Object (Blob) Data (SQL Server) Binary Large Object (Blob) Data (SQL Server)
GET_FILESTREAM_TRANSACTION_CONTEXT ()de Transact-SQL GET_FILESTREAM_TRANSACTION_CONTEXT (Transact-SQL)
Obtener acceso a los datos FILESTREAM con OpenSqlFilestreamAccess FILESTREAM Data with OpenSqlFilestream