sql-server - 列系统表(sys.columns、sys.all_columns 等)如何 self 描述?

标签 sql-server database database-design metadata

我注意到在 SQL Server 2008 中,sys.all_columns 表包含它自己的列。这怎么可能?这似乎是先有鸡还是先有蛋的问题——SQL Server 如何在不先读取 sys.all_columns 的情况下确定 sys.all_columns 的列,这需要知道该表的列是什么?

还有,这常见吗?其他数据库系统会这样做吗?

最佳答案

sys.all_columns 和 sys.columns 不是表,它们是 View 。事实上,sys.all_columns 是 sys.system_columns 和 sys.columns 的组合。

它们都绑定(bind)到一个基表中,我很确定 Microsoft 不希望人们乱用它。

您可以在此处了解有关系统基表的更多信息:https://msdn.microsoft.com/en-us/library/ms179503.aspx

关于sql-server - 列系统表(sys.columns、sys.all_columns 等)如何 self 描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666797/

相关文章:

database - 为什么此查询增加的计数超过预期? (密码/neo4j)?

c# - ASP.NET Identity 如何与 Model First 方法一起使用?

sql - 替换逗号分隔值

sql-server - Windows Azure SQL数据库-“身份自动增加”列会跳过值

database - Cypher - 如何处理否定?

android - 使用无操作应用程序托管数据库,以便精简版和专业版可以访问

database - 我应该什么时候使用 Datomic?

mysql - 数据库表设计任务

database - 结合两个一对一表的数据库设计

sql-server - 对几个字符串的全文搜索结果进行排序