如何获取SQL Server实例上的可用数据库列表?我计划在VB.NET的组合框中列出他们的列表。


当前回答

鉴于非用户数据库数量的不确定性,您可能应该补充:

WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');

并添加报表服务数据库的名称

其他回答

排除系统数据库:

SELECT name FROM master.dbo.sysdatabases where sid <>0x01

执行:

从master.sys.databases中选择名称

这是目前首选的方法,而不是dbo。Sysdatabases,它已经被弃用一段时间了。


执行这个查询:

SELECT name FROM master.dbo.sysdatabases

或者如果你愿意

EXEC sp_databases

鉴于非用户数据库数量的不确定性,您可能应该补充:

WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');

并添加报表服务数据库的名称

因为你正在使用。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

在SQL Server 7中,dbid 1 ~ dbid 4为系统dbs。