Transact SQL を使用した FileTable へのアクセス

Transact-SQL データ操作言語 (DML) コマンドによる FileTable の操作について説明します。

このトピックの内容

実行する操作

  • INSERT

  • UPDATE

  • DELETE

詳細情報

  • DML での FileTable の操作の制約

FileTable での INSERT 操作

FileTable で INSERT 操作を行う場合は、次の点に注意してください。

  • ファイル属性のすべての列には NOT NULL 制約があります。 明示的に値が設定されなかった場合は、適切な既定値が使用されます。

  • INSERT ステートメントで namepath_locatorparent_path_locator、またはファイル属性を設定する場合、システム定義の制約が適用されます。

  • アプリケーションは、GetPathLocator (Transact-SQL) 関数にファイル システム パスを渡すことで、ファイルまたはディレクトリの path_locator を取得できます。

[先頭に戻る]

FileTable での UPDATE 操作

FileTable で UPDATE 操作を行う場合は、次の点に注意してください。

  • すべてのユーザー定義データの更新が許可されます。

  • INSERT ステートメントで namepath_locatorparent_path_locator、またはファイル属性を設定する場合、システム定義の制約が適用されます。

  • file_stream 列の FILESTREAM データは、他の列 (timestamps を含む) に一切影響を及ぼさずに更新することができます。

[先頭に戻る]

FileTable での DELETE 操作

FileTable で DELETE 操作を行う場合は、次の点に注意してください。

  • 行を削除すると、対応するファイルまたはディレクトリがファイル システムから削除されます。

  • 対応するディレクトリに他のファイルまたはディレクトリが存在する場合、行の削除は失敗します。

[先頭に戻る]

DML での FileTable の操作の制約

システム定義の制約は、ファイル名前空間階層構造の整合性が DML アクションによって損なわれることのないように制御します。 適用される制約は、次のとおりです。

  • ファイルまたはディレクトリの name を設定または変更する場合:

    • ファイルおよびディレクトリに対する Windows の名前付け規則が適用されます。

    • 親ディレクトリ内での名前の一意性が強制されます。

  • path_locator あるいは parent_path_locator を設定または変更することによってファイル (またはディレクトリ) の場所を設定または変更した場合:

    • 一意性が適用されます。

    • ディレクトリおよびファイルの階層ツリーの一貫性が強制されます (path_locator 値と parent_path_locator 値の一貫性を含む)。

  • file_stream 列が null の場合、is_directory の値を true に設定することはできません。 file_stream 列のデータは、その行がディレクトリではなくファイルを表していることを示します。

  • ファイル属性列は NULL にできません。 NOT NULL 制約が既定値で適用されます。

  • last_access_time の値が last_write_timecreation_time よりも前に来ることはできません。

[先頭に戻る]

関連項目

概念

FileTable へのファイルの読み込み

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

ファイル I/O API を使用した FileTable へのアクセス

FileTable DDL、関数、ストアド プロシージャ、およびビュー