Ev.*_*Ev. 3 sql database sql-server backup rollback
这对某些人来说可能很简单,但我还没有找到一个简单的解决方案.
我现在正在自动化一个更大的进程,一步是备份然后删除数据库,然后从头开始重新创建它.
我有一个脚本可以进行备份和删除,如下所示:
Use [Master]
BACKUP DATABASE [databaseName]
TO DISK='D:\Backup\databaseName\20100122.bak'
ALTER DATABASE [databaseName]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
DROP DATABASE [databaseName]
Run Code Online (Sandbox Code Playgroud)
但我担心即使BACKUP失败也会发生DROP.
如何更改脚本,如果BACKUP失败,DROP将不会发生?
提前致谢!
小智 5
如果您的SQL Server版本是2005或更高版本,则可以使用try catch包装语句.如果备份失败,它将跳转到catch而不删除数据库...
Use [Master]
BEGIN TRY
BACKUP DATABASE [databaseName]
TO DISK='D:\Backup\databaseName\20100122.bak'
ALTER DATABASE [databaseName]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
DROP DATABASE [databaseName]
END TRY
BEGIN CATCH
PRINT 'Unable to backup and drop database'
END CATCH
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |