在实际工作中会遇到通过SQL查询数据库是否存在的情况,下面一些语句可以提供一些帮助,本文的语句是在SQL08R2中测试的
1,查询当前数据库服务器所有数据库
select * From master.dbo.sysdatabases
2,查询数据库是否存在
select count(*) From master.dbo.sysdatabases where name='数据库名'
3,查询某数据库中所有用户表
select * from sysobjects where xtype='U'
‘U’代表用户表
C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数
IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程
S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 UQ = UNIQUE 约束(类型是 K)
V = 视图 X = 扩展存储过程
4 查询数据库中某一个表是否存在
select count(*) from 数据名.dbo.sysobjects where id = object_id('数据库名.dbo.表名')
参考资料:
http://www.cnblogs.com/atree/p/SQL-Server-sysobjects.html
http://www.cnblogs.com/puresoul/archive/2010/03/21/1691004.html
http://blog.csdn.net/fuyouche/article/details/8039197