PathName (Transact-SQL)

Gäller för:SQL Server

Returnerar vägen för ett FILESTREAM binärt stort objekt (BLOB). OpenSqlFilestream API använder denna väg för att returnera ett handtag som en applikation kan använda för att arbeta med BLOB-data genom att använda Win32-API:er. PathName är skrivskyddat.

Transact-SQL syntaxkonventioner

Syntax

  
column_name.PathName ( @option [ , use_replica_computer_name ] )  

Arguments

column_name
Är kolumnnamnet på en varbinär(max) FILESTREAM-kolumn. column_name måste vara ett kolumnnamn. Det kan inte vara ett uttryck eller resultatet av ett CAST- eller CONVERT-sats.

Att begära PathName för en kolumn av någon annan datatyp eller för en varbinär(max) -kolumn som inte har FILESTREAM lagringsattributet orsakar ett felsteg vid kompilering av fråge.

@option
Ett heltalsuttryck som definierar hur serverkomponenten i vägen ska formateras. @option kan vara ett av följande värden. Standardvärdet är 0.

Value Description
0 Returnerar servernamnet konverterat till BIOS-format, till exempel: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9
1 Returnerar servernamnet utan konvertering, till exempel: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
2 Returnerar hela servervägen, till exempel: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9

use_replica_computer_name
Ett bitvärde som definierar hur servernamnet ska returneras i en Always On-tillgänglighetsgrupp.

När databasen inte tillhör en Always On-tillgänglighetsgrupp ignoreras värdet av detta argument. Datorns namn används alltid i vägen.

När databasen tillhör en Always On-tillgänglighetsgrupp har värdet av use_replica_computer_name följande effekt på utdatan av PathName-funktionen :

Value Description
Ej specificerat. Funktionen returnerar det virtuella nätverksnamnet (VNN) i sökvägen.
0 Funktionen returnerar det virtuella nätverksnamnet (VNN) i sökvägen.
1 Funktionen returnerar datorns namn i sökvägen.

Returtyp

nvarchar(max)

Returvärde

Det returnerade värdet är den fullt kvalificerade logiska eller NETBIOS-banan för BLOB:n. PathName returnerar inte en IP-adress. NULL returneras när FILESTREAM BLOB inte har skapats.

Remarks

Kolumnen ROWGUID måste vara synlig i alla frågor som anropar PathName.

En filströmsblob kan endast skapas med Transact-SQL.

Examples

A. Läser sökvägen för en FILESTREAM BLOB

Följande exempel tilldelar till PathName en nvarchar(max) variabel.

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

B. Visning av vägar för FILESTREAM BLOBs i en tabell

Följande exempel skapar och visar vägarna för tre 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;