Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Ultra Light データベース管理とリファレンス » Ultra Light SQL リファレンス » Ultra Light SQL 文

 

Ultra Light TRUNCATE TABLE 文

この文は、テーブルは削除せずにテーブルからすべてのローを削除するために使用します。

構文
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 メソッドも呼び出さないと、この文を実行できません。Dispose メソッドを参照してください。

スキーマの変更   スキーマの変更が同時に開始された場合、文は解放されません。DDL 文を使用したスキーマ変更を参照してください。

関連する動作

テーブルに DEFAULT AUTOINCREMENT または DEFAULT GLOBAL AUTOINCREMENT と定義されたカラムがある場合、TRUNCATE TABLE はそのカラムの次に使用可能な値をリセットします。

TRUNCATE TABLE でローが削除済みとマーク付けされると、この処理を実行したユーザは、ROLLBACK 文を発行しないかぎり、ローにアクセスできなくなります。ただし、他の接続からはアクセスできます。COMMIT を使用すると削除が確定し、すべての接続からデータにアクセスできなくなります。

トランケート対象のテーブルを同期すると、テーブルに適用されているすべての INSERT 文が、TRUNCATE TABLE 文より優先されます。

参照

次の文は Departments テーブルからすべてのローを削除します。

TRUNCATE TABLE Departments;

この例を実行する場合は、ROLLBACK 文を実行して、変更内容を元に戻すようにしてください。Ultra Light ROLLBACK 文を参照してください。