Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
テーブルを削除しないで、そのテーブルのすべてのローを削除します。
TRUNCATE TABLE table-name
TRUNCATE TABLE 文によってテーブル内のローがすべて削除され、この後の同期時に Mobile Link サーバにこの削除について通知されません。これは、次の文と同義です。
STOP SYNCHRONIZATION DELETE; DELETE FROM TABLE; START SYNCHRONIZATION DELETE;
この文は、同期またはレプリケーション対象のデータベースに対して慎重に使用する必要があります。Mobile Link サーバに通知されないので、この削除によって整合性が失われ、その結果、同期またはレプリケーションに失敗する可能性があります。
TRUNCATE TABLE 文の実行後、テーブル構造体、すべてのインデックス、制約およびカラム定義は存在し続けます。削除されるのはデータのみです。
テーブルを対象とした文が、別の要求やクエリですでに参照されている場合、TRUNCATE TABLE は実行できません。同様に、テーブルの変更中は、そのテーブルを参照する要求は処理されません。また、データベースにアクティブなクエリやコミットされていないトランザクションがある場合は TRUNCATE TABLE を実行できません。
Ultra Light.NET の場合:すべてのデータオブジェクト (たとえば ULDataReader) に対して Dispose メソッドも呼び出さないと、この文を実行できません。ULBulkCopy.Dispose メソッド [Ultra Light.NET]を参照してください。
スキーマの変更 スキーマの変更が同時に開始された場合、文は解放されません。
テーブルに DEFAULT AUTOINCREMENT または DEFAULT GLOBAL AUTOINCREMENT と定義されたカラムがある場合、TRUNCATE TABLE はそのカラムの次に使用可能な値をリセットします。
TRUNCATE TABLE でローが削除済みとマーク付けされると、この処理を実行したユーザは、ROLLBACK 文を発行しないかぎり、ローにアクセスできなくなります。ただし、他の接続からはアクセスできます。COMMIT を使用すると削除が確定し、すべての接続からデータにアクセスできなくなります。
トランケート対象のテーブルを同期すると、テーブルに適用されているすべての INSERT 文が、TRUNCATE TABLE 文より優先されます。
次の文は Departments テーブルからすべてのローを削除します。
TRUNCATE TABLE Departments
この例を実行する場合は、ROLLBACK 文を実行して、変更内容を元に戻すようにしてください。