c# c# sql 判断连接字符串是否有该数据库

我有多个数据库需要连接,但是数据库里面没有这个数据库。我希望通过连接字符串来实现,首先设置连接字符串,第二,连接失败的情况下,判断数据库是否有该数据库,没有则创建数据库。... 我有多个数据库需要连接,但是数据库里面没有这个数据库。我希望通过连接字符串来实现,首先设置连接字符串,第二,连接失败的情况下,判断数据库是否有该数据库,没有则创建数据库。这该怎么实现? 展开
 我来答
百度网友e5cac4d
2018-03-26 · TA获得超过616个赞
知道小有建树答主
回答量:872
采纳率:93%
帮助的人:122万
展开全部
在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)
追问
这个是只能在master实例才能执行的吧?
追答
是的,权限是需要的,尽量sa,来登录
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式