检查SQL Azure中是否存在数据库

时间:2012-01-18 18:41:26

标签: c# sql database azure azure-sql-database

有没有人可以告诉我如何在sql azure中编码数据库是否存在?

3 个答案:

答案 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]')