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.
Bir dosya veya dizin için UNC yolunu döndürür.
Syntax
<column-name>.GetFileNamespacePath(is_full_path, @option)
Arguments
Sütun adı
VARBINARY(MAX) sütununun adı, bir FileTable'daki file_stream sütunudur.
Sütun-adı değeri geçerli bir sütun adı olmalıdır. Bu bir ifade veya başka bir veri tipindeki bir sütundan dönüştürülen veya kullanılan bir değer olamaz.
is_full_path
Bir göreli mi yoksa mutlak bir yol mı döndürüleceğini belirten tam sayı ifadesi.
is_full_path aşağıdaki değerlerden birine sahip olabilir:
| Değer | Description |
|---|---|
| 0 | Veritabanı düzeyindeki dizin içindeki göreli yolu döndürür. Bu varsayılan değerdir |
| 1 | Tam UNC yolunu döndürür, başlayarak .\\computer_name |
@option
Yolun sunucu bileşeninin nasıl biçimlendirileceğini tanımlayan bir tamsayı ifadesi.
@option aşağıdaki değerlerden birine sahip olabilir:
| Değer | Description |
|---|---|
| 0 | Sunucu adını NetBIOS formatına dönüştürülmüş olarak döndürür, örneğin:\\SERVERNAME\MSSQLSERVER\MyDocumentDatabaseBu varsayılan değerdir. |
| 1 | Sunucu adını dönüştürmeden döndürür, örneğin:\\ServerName\MSSQLSERVER\MyDocumentDatabase |
| 2 | Tam sunucu yolunu döndürür, örneğin:\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase |
Dönüş Türü
nvarchar(max)
Eğer SQL Server örneği bir failover kümesinde kümelenmişse, bu yolun parçası olarak geri dönen makine adı, kümelenmiş örnek için sanal ana adıdır.
Veritabanı Always Açık erişilebilirlik grubuna ait olduğunda, FileTableRootPath fonksiyonu bilgisayar adı yerine sanal ağ adını (VNN) döndürür.
Genel Açıklamalar
GetFileNamespacePath fonksiyonunun döndürdüğü yol, aşağıdaki formatta mantıksal bir dizin veya dosya yoludur:
\\<machine>\<instance-level FILESTREAM share>\<database-level directory>\<FileTable directory>\...
Bu mantıksal yol doğrudan fiziksel bir NTFS yoluna karşılık gelmez. Bu yol, FILESTREAM'in dosya sistemi filtre sürücüsü ve FILESTREAM ajanı tarafından fiziksel yola çevrilir. Mantıksal yol ile fiziksel yol arasındaki bu ayrım, SQL Server'ın veri dahilinde yeniden düzenlemesine olanak tanır ve yolun geçerliliğini etkilemez.
En İyi Uygulamalar
Kod ve uygulamaları mevcut bilgisayar ve veritabanından bağımsız tutmak için, mutlak dosya yollarına dayanan kod yazmaktan kaçının. Bunun yerine, aşağıdaki örnekte gösterildiği gibi, FileTableRootPath ve GetFileNamespacePath fonksiyonlarını birlikte kullanarak bir dosyanın çalışma zamanında tam yolunu elde edin. Varsayılan olarak, GetFileNamespacePath fonksiyonu veritabanı için kök yolun altındaki dosyanın göreceli yolunu döndürür.
USE MyDocumentDatabase;
@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);
SELECT @fullPath = @root + file_stream.GetFileNamespacePath() FROM DocumentStore
WHERE Name = N'document.docx';
Remarks
Examples
Aşağıdaki örnekler, FileTable'daki bir dosya veya dizinin UNC yolunu almak için GetFileNamespacePath fonksiyonunun nasıl çağrılacağını gösterir.
-- returns the relative path of the form "\MyFileTable\MyDocDirectory\document.docx"
SELECT file_stream.GetFileNamespacePath() AS FilePath FROM DocumentStore
WHERE Name = N'document.docx';
-- returns "\\MyServer\MSSQLSERVER\MyDocumentDatabase\MyFileTable\MyDocDirectory\document.docx"
SELECT file_stream.GetFileNamespacePath(1, Null) AS FilePath FROM DocumentStore
WHERE Name = N'document.docx';