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

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Retorna o caminho de um objeto binário grande FILESTREAM (BLOB).Returns the path of a FILESTREAM binary large object (BLOB). A API OpenSqlFilestream usa esse caminho para retornar um identificador que um aplicativo pode usar para trabalhar com os dados de BLOB usando APIs do 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 é somente leitura.PathName is read-only.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

  
column_name.PathName ( @option [ , use_replica_computer_name ] )  

ArgumentosArguments

column_namecolumn_name
É o nome da coluna de uma coluna varbinary (max) FileStream.Is the column name of a varbinary(max) FILESTREAM column. column_name deve ser um nome de coluna.column_name must be a column name. Não pode ser uma expressão nem o resultado de uma instrução CAST ou CONVERT.It cannot be an expression nor the result of a CAST or CONVERT statement.

Solicitar o nome do caminho para uma coluna de qualquer outro tipo de dados ou para um columnthat varbinary (max) não tem o atributo de armazenamento FileStream causará um erro de tempo de compilação de 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.

opção @@option
Uma expressão de inteiro que define como o componente de servidor do caminho deve ser formatado.An integer expression that defines how the server component of the path should be formatted. @opção pode ser um dos valores a seguir.@option can be one of the following values. O padrão é 0.The default is 0.

ValorValue DescriçãoDescription
00 Retorna o nome do servidor convertido no formato de BIOS, por exemplo: \\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 Retorna o nome do servidor sem conversão, por exemplo: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1Returns the server name without conversion, for example: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
22 Retorna o caminho completo do servidor, por exemplo: \\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
Um valor de bit que define como o nome do servidor deve ser retornado em um grupo de disponibilidade Always On.A bit value that defines how the server name should be returned in an Always On availability group.

Quando o banco de dados não pertence a um grupo de disponibilidade Always On, o valor desse argumento é ignorado.When the database does not belong to an Always On availability group, then the value of this argument is ignored. O nome do computador sempre é usado no caminho.The computer name is always used in the path.

Quando o banco de dados pertence a um grupo de disponibilidade Always On, o valor de use_replica_computer_name tem o seguinte efeito na saída da função de nome de caminho :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:

ValorValue DescriçãoDescription
Não especificado.Not specified. A função retorna o VNN (nome de rede virtual) no caminho.The function returns the virtual network name (VNN) in the path.
00 A função retorna o VNN (nome de rede virtual) no caminho.The function returns the virtual network name (VNN) in the path.
11 A função retorna o nome do computador no caminho.The function returns the computer name in the path.

Tipo de retornoReturn Type

nvarchar(max)nvarchar(max)

Valor de retornoReturn Value

O valor retornado é o caminho lógico qualificado global ou NETBIOS do BLOB.The returned value is the fully qualified logical or NETBIOS path of the BLOB. PathName não retorna um endereço IP.PathName does not return an IP address. NULL é retornado quando o FILESTREAM BLOB não foi criado.NULL is returned when the FILESTREAM BLOB has not been created.

RemarksRemarks

A coluna ROWGUID deve estar visível em qualquer consulta que chama PathName.The ROWGUID column must be visible in any query that calls PathName.

Um FILESTREAM BLOB só pode ser criado usando Transact-SQLTransact-SQL.A FILESTREAM BLOB can only be created by using Transact-SQLTransact-SQL.

ExemplosExamples

A.A. Lendo o caminho para um FILESTREAM BLOBReading the path for a FILESTREAM BLOB

O exemplo a seguir atribui PathName a uma variável 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. Exibindo os caminhos de FILESTREAM BLOBs em uma tabelaDisplaying the paths for FILESTREAM BLOBs in a table

O exemplo a seguir cria e exibe os caminhos para três FILESTREAM BLOBs.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 tambémSee Also

Objeto binário grande (Blob) Dados (SQL Server) Binary Large Object (Blob) Data (SQL Server)
GET_FILESTREAM_TRANSACTION_CONTEXT (Transact-SQL) GET_FILESTREAM_TRANSACTION_CONTEXT (Transact-SQL)
Acessar dados do FILESTREAM com OpenSqlFilestreamAccess FILESTREAM Data with OpenSqlFilestream