我注意到在 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/