次の方法で共有


FileTableRootPath (Transact-SQL)

特定の FileTable または現在のデータベースの、ルート レベルの UNC パスを返します。

構文

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

引数

  • FileTable_name
    FileTable の名前。 FileTable_name のデータ型は nvarchar です。 このパラメーターはオプションです。 既定値は、現在のデータベースです。 schema_name の指定もオプションです。 FileTable_name に NULL を渡すと、既定のパラメーター値を使用できます。

  • @option
    パスのサーバー コンポーネントの書式設定の方法を定義する整数式です。 @option は次のいずれかの値になります。

    説明

    0

    サーバー名を次のような NetBIOS 形式に変換して返します。

    \\SERVERNAME\MSSQLSERVER\MyDocumentDB

    これは既定値です。

    1

    次のように、サーバー名を変換せずに返します。

    \\ServerName\MSSQLSERVER\MyDocumentDB

    2

    次のような、完全なサーバー パスを返します。

    \\ServerName.MyDomain.com\MSSQLSERVER\MyDocumentDB

戻り値の型

nvarchar(4000)

データベースが AlwaysOn 可用性グループに属する場合、FileTableRootPath 関数はコンピューター名ではなく仮想ネットワーク名 (VNN) を返します。

全般的な解説

次のいずれかの条件に該当する場合、FileTableRootPath 関数は NULL を返します。

  • FileTable_name の値が無効である。

  • 呼び出し元に、指定されたテーブルまたは現在のデータベースを参照するための十分な権限がない。

  • database_directory の FILESTREAM オプションが、現在のデータベース用に設定されていない。

詳細については、「FileTable 内のディレクトリとパスの操作」を参照してください。

ベスト プラクティス

コードとアプリケーションが現在のコンピューターとデータベースから切り離された状態を維持するには、絶対ファイル パスに依存したコードを記述しないでください。 代わりに、次の例に示すように、FileTableRootPath 関数と GetFileNamespacePath 関数を併用して、実行時にファイルの完全なパスを取得します。 既定では、GetFileNamespacePath 関数はデータベースのルート パスにあるファイルの相対パスを返します。

USE MyDocumentDB;

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

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

セキュリティ

権限

FileTableRootPath 関数には、以下の要件があります。

  • 特定の FileTable のルート パスを取得するために、FileTable に対する SELECT 権限が必要です。

  • 現在のデータベースのルート パスを取得するために、db_datareader 以上の権限が必要です。

使用例

次の例では、FileTableRootPath 関数を呼び出す方法を示します。

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

関連項目

概念

FileTable 内のディレクトリとパスの操作