我正在运行一个 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选项。