gpt4 book ai didi

tsql - T-SQL USE命令: how to handle errors?

转载 作者:行者123 更新时间:2023-12-03 07:42:02 26 4
gpt4 key购买 nike

我运行了一个脚本,该脚本从同一服务器上的多个数据库中选择数据。

USE db1
SELECT x from tbl1
USE db2
SELECT y from tbl2
... etc.

如果要从备份还原数据库之一,则该脚本会在USE语句中出错。如何处理这些错误?尝试-CATCH不起作用。

这是在2008R2上。

编辑:返回的错误是:
Msg 927, Level 14, State 2, Line 4
Database 'db2' cannot be opened. It is in the middle of a restore.

最佳答案

您可以使用DATABASEPROPERTYEX获取数据库的当前状态:

SELECT DATABASEPROPERTYEX('db_name', 'Status')

这将输出数据库的当前状态,其中包括数据库是否正在还原(状态为“ RESTORING”)。

在执行USE之前,请执行以下操作:
DECLARE @Status SQL_VARIANT
SELECT @Status = DATABASEPROPERTYEX('db1', 'Status')

IF (@Status = 'ONLINE')
BEGIN
USE db1
-- Do stuff
END
ELSE
BEGIN
-- Do other stuff
END

关于tsql - T-SQL USE命令: how to handle errors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31188949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com