如何获取SQL Server实例上的可用数据库列表?我计划在VB.NET的组合框中列出他们的列表。
当前回答
使用下面的查询来获取所有的数据库:
select * from sys.databases
如果您只需要用户定义的数据库;
select * from sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');
一些系统数据库名称是(resource,distribution,reportservice,reportservicetempdb),如果您的机器中默认有上述数据库,只需将其插入到查询中。
其他回答
如果您正在寻找一个命令来列出MYSQL中的数据库,那么只需使用下面的命令。登录sql server后,
显示数据库;
我使用下面的SQL Server Management Objects代码来获得一个数据库列表,这些数据库既不是系统数据库,也不是快照。
using Microsoft.SqlServer.Management.Smo;
public static string[] GetDatabaseNames( string serverName )
{
var server = new Server( serverName );
return ( from Database database in server.Databases
where !database.IsSystemObject && !database.IsDatabaseSnapshot
select database.Name
).ToArray();
}
执行:
从master.sys.databases中选择名称
这是目前首选的方法,而不是dbo。Sysdatabases,它已经被弃用一段时间了。
执行这个查询:
SELECT name FROM master.dbo.sysdatabases
或者如果你愿意
EXEC sp_databases
排除系统数据库:
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 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数据库复制到本地开发服务器?