如何在AWS RDS上的SQL Server中检查数据库是否存在?
在AWS RDS SQL Server中查询数据库的替代方法
通常在SQL Server环境中,检查指定数据库是否存在时会使用以下语句:
IF (EXISTS (SELECT name FROM master.dbo.databases WHERE 'myDB' = @dbname OR name = @dbname))
但在AWS RDS SQL Server实例中执行该语句时,会触发如下错误:
Invalid object name 'master.dbo.databases'
以下是AWS RDS中可行的数据库查询/存在性判断方法:
使用系统视图
sys.databases
这是SQL Server官方支持的系统目录视图,在AWS RDS中可以正常访问,能返回所有数据库(包括系统库master、model、msdb、默认存在的rdsadmin,以及用户创建的数据库)。判断指定数据库是否存在的示例:IF EXISTS (SELECT name FROM sys.databases WHERE name = @dbname) BEGIN -- 数据库存在时执行的逻辑 END使用
DB_ID()函数快速判断
若仅需判断数据库是否存在,DB_ID()函数是更简洁的选择:当指定名称的数据库存在时,函数返回对应的数据库ID;不存在则返回NULL。示例语句:IF DB_ID(@dbname) IS NOT NULL BEGIN -- 数据库存在时执行的逻辑 END
内容的提问来源于stack exchange,提问作者Lacrosse343
相关产品推荐
相关产品推荐

