SQL Server データベース ロールバック方法【簡単解説】
SQL Serverにおいて、データベースをロールバックする方法は以下の通りです。
- 例えば、トランザクションを開始およびロールバックするためにBEGIN TRANSACTIONおよびROLLBACK TRANSACTIONステートメントを使用します。
BEGIN TRANSACTION;
-- 执行一系列的操作
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION;
PRINT '事务回滚成功';
END
ELSE
BEGIN
COMMIT TRANSACTION;
PRINT '事务提交成功';
END
- SAVEPOINTを使用して保存点を作成し、必要に応じてその保存点にロールバックするROLLBACK TOステートメントを使用します。例:
BEGIN TRANSACTION;
-- 执行一系列的操作
SAVE TRANSACTION SavePoint1;
-- 执行另一系列的操作
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION SavePoint1;
PRINT '回滚到保存点成功';
END
ELSE
BEGIN
COMMIT TRANSACTION;
PRINT '事务提交成功';
END
- データベースを以前の状態に戻すためには、トランザクションログのバックアップとリストアを使用します。まず、BACKUP LOGステートメントでデータベースのトランザクションログをバックアップし、その後、RESTORE LOGステートメントでバックアップしたトランザクションログにデータベースをリストアします。例えば:
BACKUP LOG [数据库名] TO DISK = '路径\备份文件名.trn';
-- 回滚到备份的事务日志
RESTORE LOG [数据库名] FROM DISK = '路径\备份文件名.trn' WITH STOPBEFOREMARK = '标记名称';
これらの方法は、データベースのロールバック操作を実現するのに役立ちます。使用する前に、各メソッドの使用シナリオと注意事項をよく理解してください。