请教高手 sql server 怎么判断数据库是否存在(sysdatabases中存在,手动删除了库文件的情况) 如题!新建一个数据库,然后手动删除.ldf和.mdf两个文件这时数据库sysdatabases中存在新建的数据库名,但是连接时会失败。寻求sql语句判断是否能连接到新建数据库的sql语句做判断用的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if exists(select 1 from sys.databases where name='xxx' )... if exists(select 1 from sys.databases where name='xxx' and database_id>4)... 关闭数据库服务器后,收到找到数据库存放数据库文件的data目录删掉。然后在mater库中使用select * from sysdatabases where name='xxx' 新建的库名字是存在的。但是数据库实体文件(物理文件)已经没有了。这个时候我需要数据库有什么方法可以判断物理文件是否存在的方法吗? 这个没有了吧,是什么指没有方法,还是sysdatabases 中也不存在了?如果是指sysdatabases 中也不存在,大家可以试试,看看结果如何?我使用的是sql20000 declare @x varchar(1000)select @x=filename from master.dbo.sysdatabases where name='DBAP'exec xp_fileexist @xFile Exists File is a Directory Parent Directory Exists----------- ------------------- -----------------------1 0 1--> File Exists 为 1, 说明文件存在. 为 0. 则说明不存在. 11楼的说的这个可以判断刚找了下面这个方法也可判断用这个就可以判断了....if (has_dbaccess('databasename') = 1) 如果使用者有資料庫的存取權,HAS_DBACCESS 會傳回 1;如果沒有存取權,則會傳回 0;如果資料庫名稱無效,則會傳回 NULL。可以结贴了,谢谢大家 说错了 ap0405140 说的 xp_fileexist 的可以判断 has_dbaccess 只能判断是否具有访问权限,前提也是数据库必须存在,不然会报错的。使用方法是@declare @Result intexec xp_fileexist 'databasefullpath',@Result output@Result 值为0时,证明物理文件不存在,1时存在。 databasefullpath 在 master.dbo.sysdatabases 的 filename 字段下。再次感谢 ap0405140 while里面不能执行存储过程该如何调整 按In(145,120,179,110)来排序,如何实现呢? 求两个日期的天数差,这句话不对吗?? sql根据某字段的字符串分割然后排序的问题 SQL作业调度问题,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 求一句简单的代码 树形结构表的设计问题? 请问怎样在表中创这样一个列呀? 能否通过互联网使用数据库的复制功能? 一个行集不支持反向取。 搞死我 求解取最大日期、最近最大日期的日期并相减日期小于3,取记录出来?谢谢先 求某件商品在仓库表中的库存量
...
...
然后在mater库中使用
select * from sysdatabases where name='xxx' 新建的库名字是存在的。
但是数据库实体文件(物理文件)已经没有了。
这个时候我需要数据库有什么方法可以判断物理文件是否存在的方法吗?
如果是指sysdatabases 中也不存在,大家可以试试,看看结果如何?
我使用的是sql20000
declare @x varchar(1000)select @x=filename from master.dbo.sysdatabases where name='DBAP'exec xp_fileexist @xFile Exists File is a Directory Parent Directory Exists
----------- ------------------- -----------------------
1 0 1--> File Exists 为 1, 说明文件存在.
为 0. 则说明不存在.
刚找了下面这个方法也可判断
用这个就可以判断了....
if (has_dbaccess('databasename') = 1) 如果使用者有資料庫的存取權,HAS_DBACCESS 會傳回 1;如果沒有存取權,則會傳回 0;如果資料庫名稱無效,則會傳回 NULL。可以结贴了,谢谢大家
使用方法是
@declare @Result intexec xp_fileexist 'databasefullpath',@Result output@Result 值为0时,证明物理文件不存在,1时存在。
databasefullpath 在 master.dbo.sysdatabases 的 filename 字段下。
再次感谢 ap0405140