有没有人可以告诉我如何在sql azure中编码数据库是否存在?
答案 0 :(得分:5)
您是否尝试过查询sys.databases表?这应该会给你你想要的东西。更多信息here。
注意:您将要对Master数据库运行此查询。否则,您将只看到当前数据库(和Master)的名称。
答案 1 :(得分:1)
Select count(*) from sysobjects where name = 'testdb'
返回0。
把你的数据库的名称,我们将为你编辑脚本..你需要做的就是复制并粘贴好..?
这里还有一些你可以尝试的其他东西
方法1:使用sys.sysdatabases视图
IF EXISTS(SELECT * FROM sys.sysdatabases where name=@testdb)
PRINT 'The database exists' else PRINT 'The database does not exist'
方法2:使用master数据库中的sysdatabases系统表
IF EXISTS(SELECT * FROM master..sysdatabases WHERE name=@testdb)
PRINT 'The database exists' else print 'The database does not exist'
方法3:使用sp_msforeachdb
--If you dont get a message, the database doesn't exist
DECLARE @sql varchar(1000)SET @sql='if ''?''='''+@ testdb+''' print ''the database exists'''EXEC sp_msforeachdb @sql
方法4:将sp_msforeachdb与information_schema.schemata
一起使用--If you dont get a message, the database doesn't exist
DECLARE @sql varchar(1000)
SET @sql='if exists(select * from ?.information_schema.schemata wherecatalog_name='''+@ testdb+''') print ''the database exists'''
EXEC sp_msforeachdb @sql
答案 2 :(得分:0)
if exists (select * from master.sys.databases where name = '[enter name here]')