表结构(不是数据)如何/存储在SQL Server中?

时间:2016-11-02 07:36:58

标签: sql-server tsql

我知道SQL Server中的数据存储在数据页中,但我不知道表结构的存储位置。我发现了关于TRUNCATE的声明

“TRUNCATE通过释放数据页来删除数据.TRUNCATE从表中删除所有行,但表结构和列仍为”

这让我意识到,表格结构,列信息存储在页面外(或特别是数据页面)。那么,表结构(不是数据)如何/在哪里存储在SQL服务器中?

谢谢。

3 个答案:

答案 0 :(得分:2)

您可以访问INFORMATION_SCHEMA上的SQL Server元数据。下面找到最有用的视图及其内容:

  • INFORMATION_SCHEMA.TABLES :包含有关服务器中架构,表格和视图的信息。
  • INFORMATION_SCHEMA.COLUMNS :有关表格列的完整信息,如数据类型,如果它可以为空......
  • INFORMATION_SCHEMA.VIEWS :包含有关视图的信息以及再次创建视图的代码。
  • INFORMATION_SCHEMA.KEY_COLUMN_USAGE :有关外键,唯一键,主键的信息......

要使用它们,只需将它们作为数据视图进行查询:SELECT * FROM INFORMATION_SCHEMA.TABLES

如需完整参考,请访问MSDN:https://msdn.microsoft.com/en-us/library/ms186778.aspx

答案 1 :(得分:1)

SQL Server数据库由2个文件组成(通常):

  • 主数据文件(* .mdf)
  • 交易日志文件(* .ldf)

)主数据文件包含:架构和数据信息

)交易日志文件包含数据库中操作的日志信息

如果您在数据库中运行 <div ng-controller="MyCtrl" class="filter-column" data-ng-init="init()"> <form name="ppvSelectionForm"> <div class="filter-title">Region</div> <div class="bottom-line"></div> <div class="overflow-container"> <input type="radio" value="all" name="regionRadio" checked>All <div ng-repeat="choice in regions"> <input type="radio" value="{{choice}}" name="regionRadio"> {{choice}} </div> </div> </div><------ Extra closing div ,它会显示文件名,位置,大小等。

答案 2 :(得分:1)

有系统表存储有关数据库的所有元数据。这些表不是可直接查询的(除了使用DAC时),但在这些表之上构建了许多视图和函数。这些被称为Catalog Views

因此,例如,有sys.columns视图描述了数据库中的每一列。它是在syscolpars表之上构建的视图,这是上面提到的系统表之一,您无法直接查询。

还有INFORMATION_SCHEMAdisplay: table次观看hespi mentions。这些都是&#34;标准&#34;访问所有SQL数据库系统支持的元数据的方法。不幸的是,对它们的支持不是100%,并且因为它们意味着跨平台,它们不倾向于揭示产品特定的高级功能。