SQL Server中判断一个数据库是否存在的方法

在SQL Server数据库编程时,常常需要判断一个数据库是否已经存在,如果不存在则创建此数据库。常用的方法有以下三种:

1. select * From master.dbo.sysdatabases where name='test_db'

如果不存在查询结果,则说明name所表示的数据库不存在

2. object_id('test_db')

如果无法获取对象ID(null),则说明此对象不存在;常用
if object_id('test_db') is null 
或者
if (select object_id('test_db')) is null 

3. db_id('test_db')

如果不能获取数据库ID,则说明name所表示的数据库不存在;实际上此种方法也是在sysdatabases中查找,并返回数据库的ID;常用
if db_id('test_db') is null 
或者
if (select db_id('test_db')) is null 

下面以ASP编程为例来说明,先判断数据库是否存在,如果不存在则创建此数据库:

' strSQL = "if not exists (select * From master.dbo.sysdatabases where name='test_db') "& _
' strSQL = "if object_id('test_db') is null "& _
strSQL = "use master if not exists (select db_id('test_db')) "& _
"create database test_db on primary (name='test_data',filename='d:/temp/test_db/test_db.mdf',size=5MB,maxsize=unlimited,filegrowth=1%) "& _
"log on (name='test_log',filename='d:/temp/test_db/test_log.ldf',size=1MB,maxsize=unlimited,filegrowth=1%) "
cn.Execute(strSQL)
阅读更多
换一批

没有更多推荐了,返回首页