データ操作言語 (DML) コマンド Transact-SQL FileTables を操作する方法について説明します。
FileTableへのINSERT操作
FileTable に対する INSERT 操作には、次の考慮事項が適用されます。
すべてのファイル属性列に NOT NULL 制約があります。 値が明示的に設定されていない場合は、適切な既定値が指定されます。
INSERT ステートメントが 名前、 path_locator、 parent_path_locator、またはファイル属性を設定する場合、システム定義制約が適用されます。
アプリケーションは、GetPathLocator (Transact-SQL) 関数へのファイル システム パスを指定することで、ファイルまたはディレクトリのpath_locatorを取得できます。
FileTable に対する UPDATE 操作
FileTable に対する UPDATE 操作には、次の考慮事項が適用されます。
ユーザー定義データの更新は許可されます。
INSERT ステートメントが 名前、 path_locator、 parent_path_locator、またはファイル属性を設定する場合、システム定義制約が適用されます。
file_stream列の FILESTREAM データに対する更新は、タイムスタンプを含む他の列に影響を与えずに行うことができます。
FileTable に対する DELETE 操作
FileTable に対する DELETE 操作には、次の考慮事項が適用されます。
行を削除すると、対応するファイルまたはディレクトリもファイル システムから削除されます。
行が他のファイルまたはディレクトリを含むディレクトリに対応する場合、行の削除は失敗します。
FileTable に対する DML 操作に適用される制約
システム定義の制約により、DML アクションによってファイル名前空間階層の整合性が損なわれません。 適用される制約は次のとおりです。
ファイルまたはディレクトリの 名前 を設定または変更する場合:
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_timeおよびcreation_timeより前にすることはできません。
こちらもご覧ください
FileTable にファイルを読み込む
FileTable のディレクトリとパスを操作する
File Input-Output API を使用して FileTable にアクセスする
FileTable DDL、関数、ストアド プロシージャ、およびビュー