SHOW databases; - SQL

12 浏览
0 Comments

SHOW databases; - SQL

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

0
0 Comments

问题的出现原因是想要在SQL中排除系统数据库,但使用了错误的方法。原本使用的方法是检查数据库的dbid是否大于6,但实际上,系统数据库的dbid在1到4之间。因此,需要使用正确的方法来排除系统数据库。

解决方法是使用以下代码来排除系统数据库:

SELECT [name]
FROM master.dbo.sysdatabases
WHERE dbid > 4

这段代码将从master数据库的sysdatabases表中选择名称(name),并且只选择dbid大于4的数据库,从而排除系统数据库。

然而,有人指出这段代码依然存在问题,因为实际上服务器中的"ReportServer"和"ReportServerTempDB"数据库的dbid分别为5和6。因此,可能需要使用更严格的条件来排除系统数据库。

总之,要在SQL中排除系统数据库,可以使用以上提供的解决方法。

0
0 Comments

在执行SQL语句 "SHOW databases;" 时,出现了一些问题。这个问题的原因在于对于非用户数据库的数量存在歧义。为了解决这个问题,可以添加以下代码来过滤掉一些特定的数据库,同时还需要添加报告服务数据库的名称。

代码如下:WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');

通过添加上述代码,我们可以排除掉一些特定的数据库,例如'master'、'tempdb'、'model'和'msdb'。这样可以确保我们只获取到我们真正需要的数据库信息。

另外,还需要添加报告服务数据库的名称,以确保我们获取到完整的数据库列表。具体的报告服务数据库名称可能因实际情况而异,需要根据具体情况进行调整。

通过以上的解决方法,我们可以解决在执行 "SHOW databases;" SQL语句时遇到的问题,确保获取到准确的数据库列表信息。

0
0 Comments

在执行查询语句 `SELECT name FROM master.sys.databases` 时,可能会出现以下问题:没有数据库。解决方法是执行以下查询语句之一:`SELECT name FROM master.dbo.sysdatabases` 或 `EXEC sp_databases`。这两个查询语句都是用于向后兼容,但 `EXEC sp_databases` 的执行速度较慢,可能需要40秒左右的时间,而 `SELECT name FROM master.dbo.sysdatabases` 的执行速度非常快。值得注意的是,`dbo.sysdatabases` 已经被弃用了十年之久,因此 `SELECT name FROM sys.databases` 是首选的方法。另外,在SQL Server 2014中,`exec sp_databases` 查询语句可能无法正常工作,但其他两个查询语句(`master.dbo.sysdatabases` 和 `sys.databases`)仍然有效。

0