Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 系统目录与信息模式_Sql_Sql Server_Tsql_Ssms - Fatal编程技术网

Sql 系统目录与信息模式

Sql 系统目录与信息模式,sql,sql-server,tsql,ssms,Sql,Sql Server,Tsql,Ssms,在查看SQLServerManagementStudio SSMS时,哪个更好?为什么?是否存在这样的情况,即我们应该使用一个而不是另一个 我分不清它们之间的区别。信息\u模式是为了向后兼容而存在的,它不会公开有关实例上对象的所有信息 然而,sys完全公开了所有相关信息,尽管您确实需要编写更多的SQL。INFORMATION_SCHEMA更易于新用户使用,因为类似INFORMATION_SCHEMA.COLUMNS的内容包含表名、模式名、列名和对象中的数据类型。要使用sys实现这一点,必须使用s

在查看SQLServerManagementStudio SSMS时,哪个更好?为什么?是否存在这样的情况,即我们应该使用一个而不是另一个

我分不清它们之间的区别。

信息\u模式是为了向后兼容而存在的,它不会公开有关实例上对象的所有信息

然而,sys完全公开了所有相关信息,尽管您确实需要编写更多的SQL。INFORMATION_SCHEMA更易于新用户使用,因为类似INFORMATION_SCHEMA.COLUMNS的内容包含表名、模式名、列名和对象中的数据类型。要使用sys实现这一点,必须使用sys.schemas、sys.tables、sys.columns和sys.types

在SQL Server的文档中,列TABLE_模式上曾经有一条注释,指出它可能是错误的。今年早些时候,当我在他们的网站上提出质疑时,这一点被改变了。注释现在指出,信息可能不完整,而不是不正确。同样,这是因为INFORMATION\u SCHEMA没有像sys那样公开关于对象的所有信息。

INFORMATION\u SCHEMA表是标准的表以及提供相对一致的数据库描述的视图。它们在许多数据库中都可用

系统目录特定于SQL Server。我认为这些表可能会在不同版本之间发生变化,尽管这并不是真的发生

我的首选是使用信息_模式表来处理基本内容,比如数据库中有哪些表,表中有哪些列

系统表功能更强大,是专为SQL Server设计的,因此在其他情况下,您需要使用这些表