PathName (Transact-SQL)

Dotyczy:SQL Server

Zwraca ścieżkę binarnego dużego obiektu FILESTREAM (BLOB). API OpenSqlFilestream wykorzystuje tę ścieżkę do zwracania uchwytu, którego aplikacja może użyć do pracy z danymi BLOB za pomocą API Win32. PathName jest dostępny tylko do odczytu.

Transact-SQL konwencje składni

Syntax

  
column_name.PathName ( @option [ , use_replica_computer_name ] )  

Arguments

column_name
To nazwa kolumny varbinary(max) kolumny FILESTREAM. column_name musi być nazwa kolumny. Nie może być wyrażeniem ani wynikiem polecenia CAST ani CONVERT.

Żądanie PathName dla kolumny innego typu danych lub dla kolumny varbinary(max), która nie posiada atrybutu pamięci FILESTREAM, spowoduje błąd w czasie kompilacji zapytania.

@option
Wyrażenie całkowitoliczbowe, które definiuje, jak powinien być sformatowany komponent serwera ścieżki. @option może być jedną z następujących wartości. Wartość domyślna to 0.

Wartość Description
0 Zwraca nazwę serwera przekonwertowaną na format BIOS, na przykład: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9
1 Zwraca nazwę serwera bez konwersji, na przykład: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1
2 Zwraca pełną ścieżkę serwera, na przykład: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9

use_replica_computer_name
Wartość bitowa określająca, jak nazwa serwera powinna być zwracana w grupie dostępności Always On.

Gdy baza danych nie należy do grupy dostępności Always On, wartość tego argumentu jest ignorowana. Nazwa komputera jest zawsze używana w ścieżce.

Gdy baza danych należy do grupy dostępności Always On, wartość use_replica_computer_name ma następujący wpływ na wyjście funkcji PathName :

Wartość Description
Nie określono. Funkcja zwraca nazwę sieci wirtualnej (VNN) w ścieżce.
0 Funkcja zwraca nazwę sieci wirtualnej (VNN) w ścieżce.
1 Funkcja zwraca nazwę komputera w ścieżce.

Zwracany typ

nvarchar(max)

Wartość zwracana

Zwracana wartość to w pełni kwalifikowana ścieżka logiczna, czyli NETBIOS BLOB. PathName nie zwraca adresu IP. NULL jest zwracany, gdy FILESTREAM BLOB nie został utworzony.

Remarks

Kolumna ROWGUID musi być widoczna w każdym zapytaniu wywołującym PathName.

PLIKOWY BLOB PLIKOWY może być utworzony wyłącznie za pomocą Transact-SQL.

Examples

A. Odczyt ścieżki dla FILESTREAM BLOB

Poniższy przykład przypisuje zmiennej PathNamenvarchar(max) .

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

B. Wyświetlanie ścieżek dla BLOB-ów FILESTREAM w tabeli

Poniższy przykład tworzy i wyświetla ścieżki dla trzech FILESTREAM BLOB-ów.

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