نوشته شده توسط
حمیدرضاصادقیان
ببینید شما میتونید در یک Try..Catch کنترل کنید که اگر خطا داد و Restore با موفقیت انجام نشد دیتابیس مورد نظر رو حذف کنید.
اون هم که میره تو حالت Restoring من هم در پست قبل بهش اشاره کردم.چون وسط کار هست و در همون حالت باقی می مونه تا اینکه یک Backup درست رو Restore کنید.
این کدی هم که دوستمون نوشتن ربطی به Restore نداره و هنگامی که میخواهید Backup بگیرید به کارتون میاد.
مشکل این کد در چیه؟
BEGIN TRAN
ALTER DATABASE [DVM] SET SINGLE_USER with ROLLBACK IMMEDIATE
USE MASTER
RESTORE DATABASE [DVM] from DISK='" + strFileName + "' with REPLACE
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRAN
END
COMMIT TRAN
اینم متن خطاش
Msg 226, Level 16, State 6, Line 4
ALTER DATABASE statement not allowed within multi-statement transaction.
Msg 3021, Level 16, State 0, Line 6
Cannot perform a backup or restore operation within a transaction.
Msg 3013, Level 16, State 1, Line 6
RESTORE DATABASE is terminating abnormally.
Msg 3902, Level 16, State 1, Line 15
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.