Partilhar via


PathName (Transact-SQL)

Retorna o caminho de um objeto binário grande FILESTREAM (BLOB). A API OpenSqlFilestream usa este caminho para retornar um identificador que pode ser usado por um aplicativo para trabalhar com dados BLOB usado APIs Win32. PathName é somente leitura.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

column_name.PathName (@option)

Argumentos

  • column_name
    É o nome de coluna de uma coluna varbinary(max)FILESTREAM. column_name deve ser um nome de coluna. Não pode ser uma expressão nem o resultado de uma instrução CAST ou CONVERT.

    A solicitação de PathName para uma coluna de qualquer outro tipo de dados ou para uma coluna varbinary(max)que não tenha um atributo de armazenamento FILESTREAM causará um erro de tempo de compilação de consulta.

  • @option
    Uma expressão de número inteiro que define como o componente do servidor de caminho deve ser formatado. @option pode ter um dos valores a seguir. O padrão é 0.

    Valor

    Descrição

    0

    Retorna o nome do servidor convertido no formato de BIOS, por exemplo: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9

    1

    Retorna o nome do servidor sem conversão, por exemplo: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1

    2

    Retorna o caminho completo do servidor, por exemplo: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9

Tipo de retorno

nvarchar(max)

Valor de retorno

O valor retornado é o caminho lógico qualificado global ou NETBIOS do BLOB. PathName não retorna um endereço IP. NULL é retornado quando o FILESTREAM BLOB não foi criado.

Comentários

A coluna ROWGUID deve estar visível em qualquer consulta que chama PathName.

Um FILESTREAM BLOB só pode ser criado usando Transact-SQL.

Exemplos

A. Lendo o caminho para um FILESTREAM BLOB

O exemplo a seguir atribui PathName a uma variável nvarchar(max).

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

B. Exibindo os caminhos de FILESTREAM BLOBs em uma tabela

O exemplo a seguir cria e exibe os caminhos para três 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);
INSERT INTO TABLE1 VALUES(2, NEWID(), 0x00);
INSERT INTO TABLE1 VALUES(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