Transact SQL を使用した FileTable へのアクセスAccess FileTables with Transact-SQL

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Transact-SQLTransact-SQL データ操作言語 (DML) コマンドによる FileTable の操作について説明します。Describes how Transact-SQLTransact-SQL data manipulation language (DML) commands work with FileTables.

FileTable での INSERT 操作INSERT Operations on FileTables

FileTable で INSERT 操作を行う場合は、次の点に注意してください。The following considerations apply to INSERT Operations on FileTables:

  • ファイル属性のすべての列には NOT NULL 制約があります。All the file attribute columns have NOT NULL constraints. 明示的に値が設定されなかった場合は、適切な既定値が使用されます。If values are not explicitly set, then appropriate default values are supplied.

  • INSERT ステートメントで namepath_locatorparent_path_locator、またはファイル属性を設定する場合、システム定義の制約が適用されます。System-defined constraints are enforced if the INSERT statement sets the name, path_locator, parent_path_locator, or file attributes.

  • アプリケーションは、GetPathLocator (Transact-SQL) 関数にファイル システム パスを渡すことで、ファイルまたはディレクトリの path_locator を取得できます。The application can obtain the path_locator for a file or directory by providing the file system path to the GetPathLocator (Transact-SQL) function.

FileTable での UPDATE 操作UPDATE Operations on FileTables

FileTable で UPDATE 操作を行う場合は、次の点に注意してください。The following considerations apply to UPDATE operations on FileTables:

  • すべてのユーザー定義データの更新が許可されます。Updates to any user-defined data are allowed.

  • INSERT ステートメントで namepath_locatorparent_path_locator、またはファイル属性を設定する場合、システム定義の制約が適用されます。System-defined constraints are enforced if the INSERT statement sets the name, path_locator, parent_path_locator, or file attributes.

  • file_stream 列の FILESTREAM データは、他の列 (timestamps を含む) に一切影響を及ぼさずに更新することができます。Updates can be made to the FILESTREAM data in the file_stream column without affecting any of the other columns, including the timestamps.

FileTable での DELETE 操作DELETE Operations on FileTables

FileTable で DELETE 操作を行う場合は、次の点に注意してください。The following considerations apply to DELETE operations on FileTables:

  • 行を削除すると、対応するファイルまたはディレクトリがファイル システムから削除されます。Deleting a row also removes the corresponding file or directory from the file system.

  • 対応するディレクトリに他のファイルまたはディレクトリが存在する場合、行の削除は失敗します。Deleting a row fails if the row corresponds to a directory that contains other files or directories.

DML での FileTable の操作の制約Constraints That Are Enforced for DML Operations on FileTables

システム定義の制約は、ファイル名前空間階層構造の整合性が DML アクションによって損なわれることのないように制御します。System-defined constraints ensure that DML actions do not compromise the integrity of the file namespace hierarchy. 適用される制約は、次のとおりです。The constraints that are enforced include the following:

  • ファイルまたはディレクトリの name を設定または変更する場合:When you set or change the name of the file or directory:

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

    • 親ディレクトリ内での名前の一意性が強制されます。The uniqueness of the name in the parent directory is enforced.

  • path_locator あるいは parent_path_locatorを設定または変更することによってファイル (またはディレクトリ) の場所を設定または変更した場合:When you set or change the location of a file or directory by setting or changing the path_locator or parent_path_locator:

    • 一意性が適用されます。Uniqueness is enforced.

    • ディレクトリおよびファイルの階層ツリーの一貫性が強制されます ( path_locator 値と parent_path_locator 値の一貫性を含む)。The consistency of the hierarchical tree of directories and files is enforced, including the consistency of path_locator and parent_path_locator values.

  • file_stream 列が null の場合、 is_directory の値を true に設定することはできません。The value of is_directory cannot be set to true when the file_stream column is not null. file_stream 列のデータは、その行がディレクトリではなくファイルを表していることを示します。Data in the file_stream column indicates that the row represents a file and not a directory.

  • ファイル属性列は NULL にできません。File attribute columns cannot be null. NOT NULL 制約が既定値で適用されます。NOT NULL constraints are enforced with default values.

  • last_access_time の値が last_write_timecreation_timeよりも前に来ることはできません。The value of last_access_time cannot be earlier than last_write_time and creation_time.

参照See Also

FileTable へのファイルの読み込み Load Files into FileTables
FileTable 内のディレクトリとパスの操作 Work with Directories and Paths in FileTables
ファイル I/O API を使用した FileTable へのアクセス Access FileTables with File Input-Output APIs
FileTable DDL、関数、ストアド プロシージャ、およびビューFileTable DDL, Functions, Stored Procedures, and Views