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

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions)

Gibt den Pfad eines FILESTREAM BLOB (Binary Large Object) zurück.Returns the path of a FILESTREAM binary large object (BLOB). Die OpenSqlFilestream-API verwendet diesen Pfad zum Zurückgeben eines Handles, das eine Anwendung verwenden kann, um mit den BLOB-Daten mithilfe von Win32-APIs zu arbeiten.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 ist schreibgeschützt.PathName is read-only.

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

  
column_name.PathName ( @option [ , use_replica_computer_name ] )  

ArgumenteArguments

column_namecolumn_name
Der Spaltenname einer varbinary(max) FILESTREAM-Spalte.Is the column name of a varbinary(max) FILESTREAM column. column_name muss ein Spaltenname sein.column_name must be a column name. Es kann sich hierbei weder um einen Ausdruck noch um das Ergebnis einer CAST- oder CONVERT-Anweisung handeln.It cannot be an expression nor the result of a CAST or CONVERT statement.

Wenn der Pfadname für eine Spalte eines beliebigen anderen Datentyps oder für eine varbinary (max) -Spalte angefordert wird, die nicht über das FILESTREAM-Speicher Attribut verfügt, führt dies zu einem Kompilierzeitfehler der Abfrage.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.

@andere@option
Ein ganzzahliger Ausdruck , der definiert, wie die Serverkomponente des Pfads formatiert werden soll.An integer expression that defines how the server component of the path should be formatted. die * @ Option* kann einen der folgenden Werte aufweisen.@option can be one of the following values. Die Standardeinstellung ist 0.The default is 0.

WertValue BeschreibungDescription
00 Gibt den Servernamen in ein BIOS-Format konvertiert zurück, z. B.: \\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 Gibt den Servernamen ohne Konvertierung zurück, z. B.: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1Returns the server name without conversion, for example: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
22 Gibt den vollständigen Serverpfad zurück, z. B.: \\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
Ein Bitwert, der definiert, wie der Servername in einer Always on Verfügbarkeits Gruppe zurückgegeben werden soll.A bit value that defines how the server name should be returned in an Always On availability group.

Wenn die Datenbank nicht zu einer Always on-Verfügbarkeits Gruppe gehört, wird der Wert dieses Arguments ignoriert.When the database does not belong to an Always On availability group, then the value of this argument is ignored. Der Computername wird immer im Pfad verwendet.The computer name is always used in the path.

Wenn die Datenbank zu einer Always on-Verfügbarkeits Gruppe gehört, hat der Wert von use_replica_computer_name die folgenden Auswirkungen auf die Ausgabe der pathname -Funktion: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:

WertValue BeschreibungDescription
Nicht angegeben.Not specified. Die Funktion gibt den virtuellen Netzwerknamen in (VNN) im Pfad zurück.The function returns the virtual network name (VNN) in the path.
00 Die Funktion gibt den virtuellen Netzwerknamen in (VNN) im Pfad zurück.The function returns the virtual network name (VNN) in the path.
11 Die Funktion gibt den Computernamen im Pfad zurück.The function returns the computer name in the path.

RückgabetypReturn Type

nvarchar(max)nvarchar(max)

RückgabewertReturn Value

Der zurückgegebene Wert ist der vollqualifizierte logische oder NETBIOS-Pfad des BLOB.The returned value is the fully qualified logical or NETBIOS path of the BLOB. Pfadname gibt keine IP-Adresse zurück.PathName does not return an IP address. NULL wird zurückgegeben, wenn das FILESTREAM BLOB nicht erstellt wurde.NULL is returned when the FILESTREAM BLOB has not been created.

BemerkungenRemarks

Die Spalte ROWGUID muss in jeder Abfrage sichtbar sein, die PathName aufruft.The ROWGUID column must be visible in any query that calls PathName.

Ein FILESTREAM BLOB kann nur mit Transact-SQLTransact-SQLerstellt werden.A FILESTREAM BLOB can only be created by using Transact-SQLTransact-SQL.

BeispieleExamples

A.A. Lesen des Pfads für einen FILESTREAM-BLOBReading the path for a FILESTREAM BLOB

Im folgenden Beispiel wird PathName der Variablen nvarchar(max) zugewiesen.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. Anzeigen der Pfade für FILESTREAM-BLOBs in einer TabelleDisplaying the paths for FILESTREAM BLOBs in a table

Im folgenden Beispiel werden die Pfade für drei FILESTREAM BLOBs erstellt und angezeigt.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;  

Weitere InformationenSee Also

Binary Large Object (Blob) Daten (SQL Server) Binary Large Object (Blob) Data (SQL Server)
GET_FILESTREAM_TRANSACTION_CONTEXT (Transact-SQL-) GET_FILESTREAM_TRANSACTION_CONTEXT (Transact-SQL)
ZUgreifen auf FILESTREAM-Daten mit OpenSqlFilestreamAccess FILESTREAM Data with OpenSqlFilestream