文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== トランザクションで使用できるステートメント ====== 以下のステートメント以外はトランザクションでロールバックすることが可能である。 |ALTER DATABASE |DROP DATABASE |ALTER FULLTEXT CATALOG |DROP FULLTEXT CATALOG |ALTER FULLTEXT INDEX |DROP FULLTEXT INDEX | |BACKUP |RECONFIGURE |CREATE DATABASE |RESTORE |CREATE FULLTEXT CATALOG |UPDATE STATISTICS | |CREATE FULLTEXT INDEX | ||||| \\ DROP TABLE がロールバック可能であることを実験してみる。 <code sql> PRINT '***** テーブル作成 *****' CREATE TABLE drop_tran_test( col1 char(2) NULL, col2 char(3) NULL ) PRINT '***** テーブル存在確認 *****' SELECT name, object_id FROM sys.objects WHERE object_id = OBJECT_ID('drop_tran_test') PRINT '***** トランザクション開始 *****' BEGIN TRAN PRINT '***** テーブル削除 *****' DROP TABLE drop_tran_test PRINT '***** テーブル存在確認 *****' SELECT name, object_id FROM sys.objects WHERE object_id = OBJECT_ID('drop_tran_test') PRINT '***** ロールバック *****' ROLLBACK TRAN PRINT '***** テーブル存在確認 *****' SELECT name, object_id FROM sys.objects WHERE object_id = OBJECT_ID('drop_tran_test') PRINT '***** 終了処理 *****' DROP TABLE drop_tran_test </code> \\ 以下は実行結果である。 <code sql> ***** テーブル作成 ***** ***** テーブル存在確認 ***** name object_id -------------- ----------- drop_tran_test 69575286 (1 行処理されました) ***** トランザクション開始 ***** ***** テーブル削除 ***** ***** テーブル存在確認 ***** name object_id --------------- ----------- (0 行処理されました) ***** ロールバック ***** ***** テーブル存在確認 ***** name object_id --------------- ----------- drop_tran_test 69575286 (1 行処理されました) ***** 終了処理 ***** </code> 参考文献: [[http://msdn.microsoft.com/ja-jp/library/ms191544.aspx|トランザクションで使用できる Transact-SQL ステートメント]] - MSDN database/sqlserver/statements_allowed_in_transactions.txt 最終更新: 2019/05/18 02:23by 非ログインユーザー