Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Devolve o caminho de um objeto binário grande (BLOB) FILESTREAM. A API OpenSqlFilestream utiliza este caminho para devolver um handle que uma aplicação pode usar para trabalhar com os dados BLOB usando APIs Win32. O PathName é só de leitura.
Transact-SQL convenções de sintaxe
Syntax
column_name.PathName ( @option [ , use_replica_computer_name ] )
Arguments
column_name
É o nome da coluna de uma coluna varbinary(max) FILESTREAM.
column_name deve ser o nome de uma coluna. Não pode ser uma expressão nem o resultado de uma instrução CAST ou CONVERT.
Solicitar o PathName para uma coluna de qualquer outro tipo de dado ou para uma coluna varbinary(max) que não tenha o atributo de armazenamento FILESTREAM causará um erro de compilação da consulta.
@option
Uma expressão inteira que define como o componente servidor do caminho deve ser formatado.
@option pode ser um dos seguintes valores. A predefinição é 0.
| Value | Description |
|---|---|
| 0 | Devolve o nome do servidor convertido para formato BIOS, por exemplo: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9 |
| 1 | Devolve o nome do servidor sem conversão, por exemplo: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1 |
| 2 | Devolve o caminho completo do servidor, por exemplo: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9 |
use_replica_computer_name
Um valor de bit que define como o nome do servidor deve ser devolvido num grupo de disponibilidade Always On.
Quando a base de dados não pertence a um grupo de disponibilidade Always On, então o valor deste argumento é ignorado. O nome do computador é sempre usado no caminho.
Quando a base 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 PathName :
| Value | Description |
|---|---|
| Não especificado. | A função devolve o nome da rede virtual (VNN) no caminho. |
| 0 | A função devolve o nome da rede virtual (VNN) no caminho. |
| 1 | A função devolve o nome do computador no caminho. |
Tipo de Retorno
nvarchar(max)
Valor de retorno
O valor devolvido é o caminho lógico totalmente qualificado ou NETBIOS do BLOB. O PathName não devolve um endereço IP. O NULL é devolvido quando o BLOB do FILESTREAM não foi criado.
Observações
A coluna ROWGUID deve ser visível em qualquer consulta que chame PathName.
Um blob de fluxo de ficheiros só pode ser criado usando Transact-SQL.
Examples
A. Leitura do caminho para um FILESTREAM BLOB
O exemplo seguinte atribui o PathName a uma nvarchar(max) variável.
DECLARE @PathName nvarchar(max);
SET @PathName = (
SELECT TOP 1 photo.PathName()
FROM dbo.Customer
WHERE LastName = 'CustomerName'
);
B. Visualização dos caminhos para BLOBs do FILESTREAM numa tabela
O exemplo seguinte cria e apresenta os caminhos para três BLOBs do FILESTREAM.
-- 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;