PathName (Transact-SQL)

A következőkre vonatkozik:SQL Server

Visszaadja egy FILESTREAM bináris nagy objektum (BLOB) útját. Az OpenSqlFilestream API ezt az útvonalat használja arra, hogy visszaadja a fogantyút, amelyet egy alkalmazás használhat a BLOB adatokkal való munkavégzésre Win32 API-k segítségével. A PathName csak olvasható.

Transact-SQL szintaxis konvenciók

Syntax

  
column_name.PathName ( @option [ , use_replica_computer_name ] )  

Arguments

column_name
Egy varbináris (max) FILESTREAM oszlop neve. column_name biztosan oszlopnév. Nem lehet kifejezés, sem CAST vagy CONVERT állítás eredménye.

Ha a PathName kérése bármely más adattípusú oszlophoz vagy egy varbináris (max) oszlophoz, amely nem rendelkezik a FILESTREAM storage attribútummal, lekérdezési idő hibát okoz.

@option
Egy egész szám kifejezés , amely meghatározza, hogyan kell formázni az út szerverkomponenseit. @option lehet az alábbi értékek egyike. Az alapértelmezett érték a 0.

Value Description
0 A szerver nevét BIOS formátumra konvertálva adja vissza, például: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9
1 A szerver nevét konvertálás nélkül adja vissza, például: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
2 A teljes szerver útvonalat adja vissza, például: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9

use_replica_computer_name
Egy bitérték, amely meghatározza, hogyan kell a szerver nevet visszaadni egy Always On elérhetőségi csoportban.

Ha az adatbázis nem tartozik egy Always On-ba rendelkezésre álló csoportba, akkor ennek az érvelnek az értékét figyelmen kívül hagyják. A számítógép nevét mindig az úton használják.

Ha az adatbázis egy Always On elérhetőségi csoporthoz tartozik, akkor use_replica_computer_name értéke a PathName függvény kimenetére a következő hatással van:

Value Description
Nincs meghatározva. A függvény visszaadja a virtuális hálózati nevet (VNN) az úton.
0 A függvény visszaadja a virtuális hálózati nevet (VNN) az úton.
1 A függvény visszaadja az út számítógép nevét.

Visszatérési típus

nvarchar(max)

Visszaadott érték

A visszaadott érték a BLOB teljesen minősített logikai vagy NETBIOS útja. A PathName nem ad vissza IP-címet. A NULL akkor jelenik meg, amikor a FILESTREAM BLOB nem jött létre.

Remarks

A ROWGUID oszlopnak láthatónak kell lennie bármely olyan lekérdezésben, amely a PathName hívja.

Fájlfolyam blob csak a Transact-SQL használatával hozható létre.

Examples

A. A FILESTREAM BLOB útvonalának olvasása

Az alábbi példa egy változóhoz rendeli a .PathNamenvarchar(max)

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

B. A FILESTREAM BLOBok útvonalainak megjelenítése táblázatban

Az alábbi példa három FILESTREAM BLOB útvonalait hozza létre és mutatja be.

-- 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;