Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
FILESTREAM ikili büyük nesnenin (BLOB) yolunu döndürür. OpenSqlFilestream API, bu yolu kullanarak bir uygulamanın Win32 API'leri kullanarak BLOB verileriyle çalışabileceği bir tutamacı döndürür. PathName yalnızca okunabilir.
Transact-SQL söz dizimi kuralları
Syntax
column_name.PathName ( @option [ , use_replica_computer_name ] )
Arguments
column_name
Bir varbinary(max) FILESTREAM sütununun sütun adıdır.
column_name bir sütun adı olmalı. Bu bir ifade ne de bir CAST veya CONVERT ifadesinin sonucu olamaz.
Başka herhangi bir veri tipinden bir sütun veya FILESTREAM depolama özniteliği olmayan varbinary(max) bir sütun için PathName talep etmek, sorgu derleme zamanı hatasına yol açar.
@option
Yolun sunucu bileşeninin nasıl biçimlendirileceğini tanımlayan bir tamsayı ifadesi .
@option aşağıdaki değerlerden biri olabilir. Varsayılan değer 0’dır.
| Değer | Description |
|---|---|
| 0 | Sunucu adını BIOS formatına dönüştürülmüş olarak döndürür, örneğin: \\SERVERNAME\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9 |
| 1 | Sunucu adını dönüştürmeden döndürür, örneğin: \\ServerName\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F1 |
| 2 | Tam sunucu yolunu döndürür, örneğin: \\ServerName.MyDomain.com\MSSQLSERVER\v1\Archive\dbo\Records\Chart\A73F19F7-38EA-4AB0-BB89-E6C545DBD3F9 |
use_replica_computer_name
Her Zaman Açık bir kullanılabilirlik grubunda sunucu adının nasıl döndürüleceğini tanımlayan bir bit değeri.
Veritabanı Always Açık erişilebilirlik grubuna ait değilse, bu argümanın değeri göz ardı edilir. Yolda her zaman bilgisayar adı kullanılır.
Veritabanı Always On erişilebilirlik grubuna ait olduğunda, use_replica_computer_name değeri PathName fonksiyonunun çıktısı üzerinde aşağıdaki etkiye sahiptir:
| Değer | Description |
|---|---|
| Belirtilmemiş. | Fonksiyon, yoldaki sanal ağ adını (VNN) döndürür. |
| 0 | Fonksiyon, yoldaki sanal ağ adını (VNN) döndürür. |
| 1 | Fonksiyon, yolda bilgisayar adını döndürür. |
Dönüş Türü
nvarchar(max)
Dönüş Değeri
Geri dönen değer, BLOB'un tam nitelikli mantıksal veya NETBIOS yoludur. PathName bir IP adresi döndürmez. FILESTREAM BLOB oluşturulmadığında NULL döner.
Remarks
ROWGUID sütunu, PathName çağrısı yapan herhangi bir sorguda görünür olmalıdır.
Dosya akışı blobu yalnızca Transact-SQL kullanılarak oluşturulabilir.
Examples
A. DOSYA AKIŞI BLOB'un yolunu okumak
Aşağıdaki örnek bir değişkene ataymaktadır PathNamenvarchar(max) .
DECLARE @PathName nvarchar(max);
SET @PathName = (
SELECT TOP 1 photo.PathName()
FROM dbo.Customer
WHERE LastName = 'CustomerName'
);
B. FILESTREAM BLOB'larının yollarını bir tabloda göstermek
Aşağıdaki örnek, üç DOSYA AKIŞI BLOB'u için yolları oluşturur ve gösterir.
-- 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;