我有一个用于列出数据库的查询:

SELECT * FROM sys.databases

但是这个查询在 SQL Server 2000 中不起作用。

以下查询适用于 SQL Server 2000 及更高版本:
SELECT NAME FROM sysdatabases;

我发现 this article 有一些关于 sys.database 的注释(并且还指出出于兼容性原因保留了 sysdatabases)。

我想知道的是,是否有任何原因我不应该使用 sysdatabases 来获取数据库名称列表?除了使用 sys.databases 是较新的样式之外,我在其他任何地方都没有看到任何东西。

最佳答案

我可以想到以下原因:

  • 可能是 removed in future versions(重点是我的):



    换句话说:是的,您可以使用 sysdatabases ,但是一旦发布不再支持 sysdatabases 的 SQL Server 版本,您可能需要重写所有内容。
  • 兼容性 View (例如 sysdatabases )在 SQL Server 2000 中保持“原样”并且不会获得新功能。因此,它们包含 less information than their new counterparts :

  • 关于sql-server - SQL Server sys.databases 与 sysdatabases?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34070483/

    10-12 15:27