如何实现判断数据库是否存在,不存在则自动创建

landry1234 2011-06-11 09:14:11
主要是程序第一次运行的时候,想免去手动附加数据库的麻烦,所以用代码实现,但问题是用sql代码要先连接数据库,如果数据库都不存在还怎么连接啊,也不能用存储过程,因为存储过程是存放在数据库里的,大家给点启发吧
...全文
541 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 landry1234 的回复:]

引用 1 楼 kingdom_0 的回复:
SQL code
select * from master..sysdatabases where [name] = 'test '

但是这个代码要放到c#里不还是要先连接数据库?
[/Quote]
需要连接

select 1 from dbo.sysobjects where name='存储过程名' and Type = 'P'
remember_me 2011-06-11
  • 打赏
  • 举报
回复

user master --将当前数据库设置为master,以便访问数据表SysDataBases
if exists(select * from sysdatabases where name = '数据库名')
drop database 数据库名
go
create database 新数据库
landry1234 2011-06-11
  • 打赏
  • 举报
回复
请问我可以直接写一个附加数据库的代码吗?
threenewbee 2011-06-11
  • 打赏
  • 举报
回复
一样可以连接。

只是会报异常,发现异常再创建数据库。

try
{
连接
}
catch
{
创建
}
herohua0509 2011-06-11
  • 打赏
  • 举报
回复
楼上都是正解,先连接系统的数据库就可以了
kingdom_0 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 landry1234 的回复:]

引用 1 楼 kingdom_0 的回复:
SQL code
select * from master..sysdatabases where [name] = 'test '

但是这个代码要放到c#里不还是要先连接数据库?
[/Quote]先连接 master数据库.
w123wxh 2011-06-11
  • 打赏
  • 举报
回复
先连接master库
select * from master.dbo.sysdatabases where name = 'DataBaseName'
查询不到,就可以创建
landry1234 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kingdom_0 的回复:]
SQL code
select * from master..sysdatabases where [name] = 'test '
[/Quote]
但是这个代码要放到c#里不还是要先连接数据库?
kingdom_0 2011-06-11
  • 打赏
  • 举报
回复
select   *   from   master..sysdatabases   where   [name]   = 'test '

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧