PathName (Transact-SQL)
Restituisce il percorso di un oggetto binario di grandi dimensioni (BLOB) FILESTREAM. L'API OpenSqlFilestream utilizza questo percorso per restituire un handle che un'applicazione può utilizzare per la gestione dei dati BLOB tramite le API Win32. PathName è un valore di sola lettura.
Sintassi
column_name.PathName (@option)
Argomenti
column_name
Nome di una colonna FILESTREAM di tipo varbinary(max). column_name deve essere un nome di colonna. Non può essere un'espressione né il risultato di un'istruzione CAST o CONVERT.Se si richiede PathName per una colonna con qualsiasi altro tipo di dati o per una colonna di tipo varbinary(max) che non dispone dell'attributo di archiviazione FILESTREAM, viene generato un errore in fase di compilazione della query.
@option
Espressione integer che definisce il modo in cui deve essere formattato il componente server del percorso. @option può assumere uno dei valori seguenti. Il valore predefinito è 0.Valore
Descrizione
0
Restituisce il nome del server convertito in formato BIOS, ad esempio \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9
1
Restituisce il nome del server senza conversione, ad esempio \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
2
Restituisce il percorso completo del server, ad esempio \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9
Tipo restituito
nvarchar(max)
Valore restituito
Il valore restituito è il percorso completo logico oppure il percorso NETBIOS dell'oggetto BLOB. PathName non restituisce un indirizzo IP. Quando l'oggetto BLOB FILESTREAM non è stato creato, viene restituito NULL.
Osservazioni
La colonna ROWGUID deve essere visibile in tutte le query in cui viene chiamato PathName.
Un oggetto BLOB FILESTREAM può essere creato solo utilizzando Transact-SQL.
Esempi
A. Lettura del percorso di un oggetto BLOB FILESTREAM
Nell'esempio seguente viene assegnato PathName a una variabile nvarchar(max).
DECLARE @PathName nvarchar(max)
SET @PathName = (
SELECT TOP 1 photo.PathName()
FROM dbo.Customer
WHERE LastName = 'CustomerName'
);
B. Visualizzazione dei percorsi di oggetti BLOB FILESTREAM in una tabella
Nell'esempio seguente vengono creati e visualizzati i percorsi di tre oggetti BLOB 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);
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
Vedere anche