系统目录与信息模式

omtl5h9j  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(195)

在查看SQLServerManagementStudio(ssms)时,哪一个更好?为什么?在某些情况下,我们应该使用一个而不是另一个?
我分不清他们之间的区别。

kx5bkwkv

kx5bkwkv1#

INFORMATION_SCHEMA 如果有后台兼容性,它不会公开示例上对象的所有信息。 sys 但是,完全公开任何相关信息,尽管您确实需要编写更多的sql。 INFORMATION_SCHEMA 对于新用户来说“更容易”使用,比如 INFORMATION_SCHEMA.COLUMNS 包含对象中的表、架构、列和数据类型的名称。为了得到这个 sys 你必须使用 sys.schemas , sys.tables , sys.columns 以及 sys.types .
过去在这个专栏上有一个关于SQLServer文档的注解 TABLE_SCHEMA 暗示这可能是错误的。今年早些时候,我在他们的github上对此进行了质疑。该说明现在指出,信息可能不完整,而不是不正确。再说一次,这是因为 INFORMATION_SCHEMA 不会暴露所有关于对象的信息 sys 做。

xxls0lw8

xxls0lw82#

这个 INFORMATION_SCHEMA 表是提供相对一致的数据库描述的标准表(井视图)。它们在许多数据库中都可用。
系统目录特定于sql server。我认为这些表可能会在不同版本之间发生变化,尽管这并不是真的发生。
我喜欢用 INFORMATION_SCHEMA 基本内容的表——比如数据库中的表和表中的列。
系统表功能更强大,是专门为SQLServer设计的,因此在其他情况下需要使用这些表。

相关问题