Aracılığıyla paylaş


FileTableRootPath (Transact-sql)

Kök düzeyindeki unc yolu veya geçerli veritabanı için belirli bir FileTable döndürür.

Sözdizimi

FileTableRootPath ( [ ‘[schema_name.]FileTable_name’ ], @option )

Bağımsız değişkenler

  • FileTable_name
    FileTable adı. FileTable_nametür nvarchar. Bu isteğe bağlı bir parametredir. Geçerli veritabanının varsayılan değerdir. Belirtme schema_nameda opsiyoneldir. Sen-ebilmek geçmek-e null FileTable_namevarsayılan parametre değeri kullanmak için

  • @option
    Sunucu bileşeni yolun nasıl biçimlendirilmesi gerektiğini tanımlayan bir tamsayı ifade. @optionAşağıdaki değerlerden biri olabilir:

    Değer

    Açıklama

    0

    NetBIOS, örneğin biçime sunucu adını döndürür:

    \\SERVERNAME\MSSQLSERVER\MyDocumentDB

    Bu varsayılan değerdir.

    1

    Örneğin dönüştürmesi olmadan sunucu adını döndürür:

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    Örneğin tam sunucu yolu döndürür:

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

Dönüş Türü

nvarchar(4000)

Veritabanı bir AlwaysOn kullanılabilirlik grubuna aitse o FileTableRootPathişlevi bilgisayar adı yerine sanal ağ adı (vnn).

Genel Yorumlar

FileTableRootPathİşlevi döndürür null aşağıdaki koşullardan biri doğru olduğunda:

  • Değeri FileTable_namegeçerli değil.

  • Arayan, belirtilen tablo veya geçerli veritabanı başvuru için yeterli izni yok.

  • FILESTREAM seçeneği database_directorygeçerli veritabanı için ayarlı değil.

Daha fazla bilgi için, bkz. Dizinler ve FileTables yolları ile çalışmak.

En İyi Yöntemler

Kod ve uygulama geçerli bilgisayar ve veritabanı bağımsız tutmak için mutlak dosya yolları kullanan kod yazma kaçının. Bunun yerine, tam yolu bir dosya için zamanında kullanarak elde FileTableRootPathve GetFileNamespacePathbirlikte, aşağıdaki örnekte gösterildiği gibi işlev. Varsayılan olarak, GetFileNamespacePathişlevi göreli yolu veritabanı dosyasının kök yolunda.

USE MyDocumentDB;

@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);

SELECT @fullPath = @root + file_stream.GetFileNamespacePath()
FROM DocumentStore
WHERE Name = N’document.docx’;

USE MyDocumentDB;

@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);

SELECT @fullPath = @root + file_stream.GetFileNamespacePath()
FROM DocumentStore
WHERE Name = N’document.docx’;

Güvenlik

İzinler

FileTableRootPathİşlevi gerektirir:

  • Belirli bir FileTable kök yolunu FileTable izni seçin.

  • db_datareaderveya geçerli veritabanı için kök yolunu almak için daha yüksek izin.

Örnekler

Aşağıdaki örnekler nasıl FileTableRootPath işlevi.

USE MyDocumentDB;
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB”
SELECT FileTableRootPath();

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'dbo.MyFileTable');

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'MyFileTable');

USE MyDocumentDB;
-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB”
SELECT FileTableRootPath();

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'dbo.MyFileTable');

-- returns “\\MYSERVER\MSSQLSERVER\MyDocumentDB\MyFileTable”
SELECT FileTableRootPath(N'MyFileTable');

Ayrıca bkz.

Kavramlar

Dizinler ve FileTables yolları ile çalışmak