FileTableRootPath (Transact-SQL)
Berlaku untuk: SQL Server
Mengembalikan jalur UNC tingkat akar untuk FileTable tertentu atau untuk database saat ini.
Sintaks
FileTableRootPath ( [ '[schema_name.]FileTable_name' ], @option )
Argumen
FileTable_name
Nama FileTable. FileTable_name berjenis nvarchar. Ini adalah parameter opsional. Nilai defaultnya adalah database saat ini. Menentukan schema_name juga bersifat opsional. Anda dapat meneruskan NULL untuk FileTable_name menggunakan nilai parameter default
@option
Ekspresi bilangan bulat yang menentukan bagaimana komponen server jalur harus diformat. @option bisa memiliki salah satu nilai berikut:
Nilai | Deskripsi |
---|---|
0 | Mengembalikan nama server yang dikonversi ke format NetBIOS, misalnya:\\SERVERNAME\MSSQLSERVER\MyDocumentDatabase Ini adalah nilai default. |
1 | Mengembalikan nama server tanpa konversi, misalnya:\\ServerName\MSSQLSERVER\MyDocumentDatabase |
2 | Mengembalikan jalur server lengkap, misalnya:\\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDatabase |
Jenis Hasil
nvarchar(4000)
Saat database termasuk dalam grup ketersediaan AlwaysOn, maka fungsi FileTableRootPath mengembalikan nama jaringan virtual (VNN) alih-alih nama komputer.
Keterangan Umum
Fungsi FileTableRootPath mengembalikan NULL ketika salah satu kondisi berikut ini benar:
Nilai FileTable_name tidak valid.
Pemanggil tidak memiliki izin yang memadai untuk mereferensikan tabel yang ditentukan atau database saat ini.
Opsi FILESTREAM dari database_directory tidak diatur untuk database saat ini.
Untuk informasi selengkapnya, lihat Bekerja dengan Direktori dan Jalur di FileTables.
Praktik Terbaik
Untuk menjaga kode dan aplikasi tetap independen dari komputer dan database saat ini, hindari menulis kode yang bergantung pada jalur file absolut. Sebagai gantinya, dapatkan jalur lengkap untuk file pada waktu proses dengan menggunakan fungsi FileTableRootPath dan GetFileNamespacePath bersama-sama, seperti yang ditunjukkan dalam contoh berikut. Secara default, fungsi GetFileNamespacePath mengembalikan jalur relatif file di bawah jalur akar untuk database.
USE MyDocumentDatabase;
@root varchar(100)
SELECT @root = FileTableRootPath();
@fullPath = varchar(1000);
SELECT @fullPath = @root + file_stream.GetFileNamespacePath()
FROM DocumentStore
WHERE Name = N'document.docx';
Keamanan
Izin
Fungsi FileTableRootPath memerlukan:
Izin SELECT pada FileTable untuk mendapatkan jalur akar fileTable tertentu.
db_datareader atau izin yang lebih tinggi untuk mendapatkan jalur akar untuk database saat ini.
Contoh
Contoh berikut menunjukkan cara memanggil fungsi FileTableRootPath .
USE MyDocumentDatabase;
-- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase"
SELECT FileTableRootPath();
-- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase\MyFileTable"
SELECT FileTableRootPath(N'dbo.MyFileTable');
-- returns "\\MYSERVER\MSSQLSERVER\MyDocumentDatabase\MyFileTable"
SELECT FileTableRootPath(N'MyFileTable');