我有一个包含USE DATABASE
声明的脚本。如果数据库存在,脚本运行得非常好。如果它不存在,它会失败并显示“数据库不存在”消息,这很有意义。
现在,我不会失败,所以我添加了一个检查来选择数据库是否存在于 sys.databases 上(IF 1=2
为了简单起见,我将在这里用一个检查来表示),所以,如果数据库存在(1=1 ),然后运行“使用”语句。
令我惊讶的是,脚本一直失败。所以我尝试添加一个 TRY CATCH 块。结果相同。似乎 use 语句是在其他任何事情之前进行评估的,这很烦人,因为现在我的脚本可能会中断。
所以我的问题是:如何use
在脚本上对可能不存在的数据库进行声明?
BEGIN TRY
IF (1=1) BEGIN --if DB exists
USE DB_THAT_MAY_NOT_EXIST
END
END TRY
BEGIN CATCH
END CATCH