Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server
Gibt den Pfad eines FILESTREAM BLOB (Binary Large Object) zurück. Die OpenSqlFilestream-API verwendet diesen Pfad, um ein Handle zurückzugeben, das eine Anwendung verwenden kann, um mit den BLOB-Daten mithilfe von Win32-APIs zu arbeiten. PathName ist schreibgeschützt.
Transact-SQL-Syntaxkonventionen
Syntax
column_name.PathName ( @option [ , use_replica_computer_name ] )
Argumente
column_name
Der Spaltenname einer varbinary(max) FILESTREAM-Spalte. column_name muss ein Spaltenname sein. Es kann sich hierbei weder um einen Ausdruck noch um das Ergebnis einer CAST- oder CONVERT-Anweisung handeln.
Das Anfordern des PathName für eine Spalte eines anderen Datentyps oder für eine varbinary(max) -Spalte hat nicht das FILESTREAM-Speicherattribut einen Fehler bei der Abfragekompilierungszeit.
@option
Ein ganzzahliger Ausdruck , der definiert, wie die Serverkomponente des Pfads formatiert werden soll. Für@option sind die folgenden Werte möglich. Der Standardwert ist 0.
Wert | Beschreibung |
---|---|
0 | Gibt den Servernamen in ein BIOS-Format konvertiert zurück, z. B.: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9 |
1 | Gibt den Servernamen ohne Konvertierung zurück, z. B.: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1 |
2 | Gibt den vollständigen Serverpfad zurück, z. B.: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9 |
use_replica_computer_name
Ein Bitwert, der definiert, wie der Servername in einer AlwaysOn-Verfügbarkeitsgruppe zurückgegeben werden soll.
Wenn die Datenbank nicht zu einer AlwaysOn-Verfügbarkeitsgruppe gehört, wird der Wert dieses Arguments ignoriert. Der Computername wird immer im Pfad verwendet.
Wenn die Datenbank zu einer Always On-Verfügbarkeitsgruppe gehört, hat der Wert von use_replica_computer_name die folgende Auswirkung auf die Ausgabe der PathName-Funktion :
Wert | Beschreibung |
---|---|
Nicht angegeben. | Die Funktion gibt den virtuellen Netzwerknamen in (VNN) im Pfad zurück. |
0 | Die Funktion gibt den virtuellen Netzwerknamen in (VNN) im Pfad zurück. |
1 | Die Funktion gibt den Computernamen im Pfad zurück. |
Rückgabetyp
nvarchar(max)
Rückgabewert
Der zurückgegebene Wert ist der vollqualifizierte logische oder NETBIOS-Pfad des BLOB. Pfadname gibt keine IP-Adresse zurück. NULL wird zurückgegeben, wenn das FILESTREAM BLOB nicht erstellt wurde.
Hinweise
Die Spalte ROWGUID muss in jeder Abfrage sichtbar sein, die PathName aufruft.
Ein FILESTREAM-BLOB kann nur mit Transact-SQL erstellt werden.
Beispiele
A. Lesen des Pfads für einen FILESTREAM-BLOB
Im folgenden Beispiel wird PathName
der Variablen nvarchar(max)
zugewiesen.
DECLARE @PathName nvarchar(max);
SET @PathName = (
SELECT TOP 1 photo.PathName()
FROM dbo.Customer
WHERE LastName = 'CustomerName'
);
B. Anzeigen der Pfade für FILESTREAM-BLOBs in einer Tabelle
Im folgenden Beispiel werden die Pfade für drei FILESTREAM BLOBs erstellt und angezeigt.
-- 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;
Weitere Informationen
Binary Large Object (BLOB)-Daten (SQL Server)
GET_FILESTREAM_TRANSACTION_CONTEXT (Transact-SQL)
ZUgreifen auf FILESTREAM-Daten mit OpenSqlFilestream