如何获取SQL Server实例上的可用数据库列表?我计划在VB.NET的组合框中列出他们的列表。
当前回答
SELECT [name]
FROM master.dbo.sysdatabases
WHERE dbid > 4 and [name] <> 'ReportServer' and [name] <> 'ReportServerTempDB'
这将工作的两个条件,报告是否启用
其他回答
如果您正在寻找一个命令来列出MYSQL中的数据库,那么只需使用下面的命令。登录sql server后,
显示数据库;
排除系统数据库:
SELECT [name]
FROM master.dbo.sysdatabases
WHERE dbid > 6
编辑:2013年2月5日下午2:36
更新准确的database_id,它应该大于4,跳过列表 数据库id在1到4之间的系统数据库。
SELECT *
FROM sys.databases d
WHERE d.database_id > 4
不确定这是否会忽略报表服务器数据库,因为我没有运行一个,但从我所看到的,我可以用这个SQL忽略系统用户拥有的数据库:
SELECT db.[name] as dbname
FROM [master].[sys].[databases] db
LEFT OUTER JOIN [master].[sys].[sysusers] su on su.sid = db.owner_sid
WHERE su.sid is null
order by db.[name]
因为你正在使用。net,你可以使用SQL Server管理对象
Dim server As New Microsoft.SqlServer.Management.Smo.Server("localhost")
For Each db As Database In server.Databases
Console.WriteLine(db.Name)
Next
使用下面的查询来获取所有的数据库:
select * from sys.databases
如果您只需要用户定义的数据库;
select * from sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');
一些系统数据库名称是(resource,distribution,reportservice,reportservicetempdb),如果您的机器中默认有上述数据库,只需将其插入到查询中。
推荐文章
- 等价的限制和偏移SQL Server?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?
- 多语句表值函数vs内联表值函数
- NOLOCK提示在SELECT语句中的作用
- SQL OVER()子句-它什么时候有用,为什么有用?
- 检查SQL Server登录是否已经存在
- 我如何使用ROW_NUMBER()?
- 如何检查表上持有哪些锁
- SQL Server数据库备份恢复到低版本
- SQL Server:过滤sp_who2的输出
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- Sql Server字符串到日期的转换
- 如何将SQL Azure数据库复制到本地开发服务器?