【发布时间】:2009-08-20 13:36:42
【问题描述】:
我正在运行一个删除数据库然后恢复它的 T-SQL 脚本。该脚本针对 SQL Server 2008 数据库运行。有时备份文件有问题,数据库卡在恢复状态。
IF EXISTS (SELECT 1 FROM master.dbo.sysdatabases WHERE name = 'dbname')
BEGIN
ALTER DATABASE [dbname]
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
END
IF EXISTS (SELECT 1 FROM master.dbo.sysdatabases WHERE name = 'dbname')
BEGIN
DROP DATABASE [dbname]
END
RESTORE DATABASE [dbname]
FROM DISK = N'C:\dbname.bak'
WITH FILE = 1,
NOUNLOAD,
STATS = 10
下次运行脚本时,脚本会生成错误消息
ALTER DATABASE is not permitted while a database is in the Restoring state.
在尝试运行 ALTER DATABASE 命令之前检查数据库是否处于恢复状态的最佳方法是什么?
编辑:我正在运行的 RESTORE DATABASE 命令不使用 NO RECOVERY 选项。
【问题讨论】:
标签: sql-server tsql