SQL ServerでTRUNCATEトランザクションをロールバックする方法
2022-01-20 16:27:35
一般に、TRUNCATE はロールバックしない操作であり、テーブルのすべてのデータを削除し、Identity 列をリセットすると考えられています。
トランザクションの中でTRUNCATE操作を行うと、ロールバックすることができます。逆に言えば、ログ・ファイル・ファイルからデータを復元することはできない。また、ログファイルには削除されたデータは記録されず、データページのセル割り当てがログに記録されるだけである。
上記の内容を次の例で説明します。
コピーコード
コードは以下の通りです。
USE temp_test_database
GO
-- Create a temporary table
CREATE TABLE TruncateTabel(ID INT)
INSERT INTO TruncateTabel(ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
GO
-- Create a temporary table
CREATE TABLE TruncateTabel(ID INT)
INSERT INTO TruncateTabel(ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
コピーコード
コードは以下の通りです。
--check the inserted data
SELECT * FROM TruncateTabel
SELECT * FROM TruncateTabel
ご覧のとおりです。
トランザクションの開始
コピーコード
コードは以下の通りです。
--Start the transaction
BEGIN TRAN
TRUNCATE TABLE TruncateTabel
GO
-- Check TruncateTable before rolling back
SELECT * FROM TruncateTabel
GO
F5は以下のように実行されます。
ロールバックトランザクションの実行
コピーコード
コードは以下の通りです。
--rollback transaction
ROLLBACK TRAN
GO
ROLLBACK TRAN
GO
TruncateTableテーブルを再度確認する
コピーコード
コードは以下の通りです。
--check TruncateTable again after rollback
SELECT * FROM TruncateTabel
GO
SELECT * FROM TruncateTabel
GO
F5は以下のように実行されます。
要約すると、トランザクションはTRUNCATE操作のためにロールバックすることができます。
関連
-
Microsoft Sql server2005 のインストール手順のグラフィック詳細とよくある問題の解決法
-
SQL2005 ビューデッドロック ストアドプロシージャ sp_who_lock
-
Sqlserver 2005のログファイルが大きすぎる削減する方法
-
SQL Server 2005 Management Studio Express Enterprise Managerで英語を簡体字中国語に変換する方法
-
SQL Server 2005のデータベースでtempdbの場所を変更する方法
-
SQL server 2005でリモートデータベースをローカルにインポートする方法
-
sql server 2005 データベースのバックアップ・リストア グラフィックチュートリアル
-
SQL Server 2005 と sql 2000 の間のデータ変換方法
-
[オリジナル】SQL2005再ビルドインデックスストアドプロシージャ sp_rebuild_index
-
SQL Server 2005のインストールと設定方法のグラフィックチュートリアルは、Win7のすべてのバージョンと完全に互換性があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL Serverは、SET FMTONLY ONでテーブルのメタデータを取得する
-
Management StudioでWebブラウザを使用したSQL Server
-
SQL2005ExpressでACCESSのデータベースをインポートする2つの方法
-
SQLserverにおけるdeclare変数の使用法
-
Sqlサーバーのバックアップとリストア後の制限されたユーザーの問題
-
SQL Server 2005 Compact Editionのデータベースを削除する詳細情報
-
SQL Server 2005 の SQL 文の時限実行方法について
-
sql2005 ローカルコンピュータの SQL SERVER サービスが起動し、その後停止する 解決方法
-
SQL2005のプロバイダです。名前付きパイププロバイダエラー。40 SQL Server への接続を開くことができません
-
SQLServerは、ユーザーのデフォルトデータベースを開くことができません ログイン失敗エラー4064の解決策