在查询之前是否存在信息模式?

时间:2014-11-18 21:37:09

标签: sql sql-server database-schema

在SQL数据库中,我可以运行查询来显示存在的信息,并且我可以创建以前不存在的新数据汇编。

例如,SELECT * FROM Table1将返回已存在的信息,而一系列嵌套连接和WHERE语句可以在查询运行之前以不存在的方式显示数据。

我的问题是数据库的信息模式 - 假设它之前从未被提取过 - 属于第一类或第二类。

2 个答案:

答案 0 :(得分:1)

信息模式视图查询数据库中已存在的系统表。您可以将自己控制为sys.tables等,在Sql server中称为catalog views。 因此,使用这些视图属于您问题中的第二种用法。以不同的方式使用现有数据。

答案 1 :(得分:0)

INFORMATION_SCHEMA中的所有内容都只是系统表的视图。因此,您的问题的答案是数据始终存在(因为数据库中的每个对象在系统表中都有一个或多个行代表它),并且它在查询时为您的观看乐趣而生成(以INFORMATION_SCHEMA要求的形式呈现它。

请注意,即使我们通常称之为"系统表" (sys.tables和相关的)也只是真实的,实际的,物理系统表的视图,任何用户都无法访问,只能访问数据库引擎本身 - 直接查看这些表需要直接管理员连接并调整一些标志,并且通常不是由SQL Server开发人员以外的任何人完成的。

至于这在FOIA环境中意味着什么,可能在法律环境中得到最好的回答,而不是信息理论环境。