.show database schema 命令

以下命令将数据库架构显示为表、JSON 对象或 CSL 脚本。

权限

你必须至少具有数据库用户、数据库查看者或数据库监视者权限才能运行这些命令。 有关详细信息,请参阅基于角色的访问控制

.show database schema

语法

.showdatabaseDatabaseNameschema [details] [if_later_than"Version"]

.showdatabases(DatabaseName [, ...])schemadetails

.showdatabases(DatabaseNameif_later_than"Version" [, ...])schemadetails

详细了解语法约定

参数

客户 类型​​ 必需 说明
DatabaseName string 要显示其架构的数据库的名称。
版本 string 采用“vMM.mm”格式的版本。 MM 代表主版本,mm 代表次要版本。

返回

返回所选数据库的结构的简单列表,其所有表和列都在单个表或 JSON 对象中。 与版本一起使用时,只有在版本比提供的版本更高时才会返回数据库。

示例

显示数据库架构

数据库“TestDB”具有一个被称为“Events”的表。

.show database TestDB schema 

输出

DatabaseName TableName ColumnName ColumnType IsDefaultTable IsDefaultColumn PrettyName 版本
TestDB False False v.1.1
TestDB 事件 正确 False
TestDB 事件 名称 System.String 正确 False
TestDB 事件 StartTime System.DateTime 正确 False
TestDB 事件 EndTime System.DateTime 正确 False
TestDB 事件 城市 System.String 正确 False
TestDB 事件 SessionId System.Int32 True True

根据版本显示数据库架构

在下面的示例中,该数据库只有在其版本比提供的版本高时才会被返回。

.show database TestDB schema if_later_than "v1.0" 

输出

DatabaseName TableName ColumnName ColumnType IsDefaultTable IsDefaultColumn PrettyName 版本
TestDB False False v.1.1
TestDB 事件 正确 False
TestDB 事件 名称 System.String 正确 False
TestDB 事件 StartTime System.DateTime 正确 False
TestDB 事件 EndTime System.DateTime 正确 False
TestDB 事件 城市 System.String 正确 False
TestDB 事件 SessionId System.Int32 True True

因为提供的版本低于当前数据库的版本,所以返回了“TestDB”架构。 提供相同或更高的版本将生成空结果。

.show database schema as json

语法

.showdatabaseDatabaseNameschema [if_later_than"Version"] asjson

.showdatabases(DatabaseName [, ...])schemaasjson [with(Options)]

.showdatabases(DatabaseNameif_later_than"Version" [, ...])schemaasjson [with(Options)]

详细了解语法约定

参数

客户 类型​​ 必需 说明
DatabaseName string 要显示其架构的数据库的名称。
版本 string 采用“vMM.mm”格式的版本。 MM 代表主版本,mm 代表次要版本。
选项 string 逗号分隔的键值对列表,这些键值对用于确定要返回哪些数据库实体架构。 如果未指定任何值,则会返回所有实体。 请参阅支持的实体选项

支持的实体选项

下表描述了要为 Options 参数提供的值。

密钥 说明
Tables bool 如果该项为 true,则会返回表。
ExternalTables bool 如果该项为 true,则会返回外部表。
MaterializedViews bool 如果该项为 true,则会返回具体化视图。
Functions bool 如果该项为 true,则会返回函数。

返回

返回所选数据库的结构的简单列表,这些数据库所有的表和列都作为 JSON 对象返回。 与版本一起使用时,只有在版本比提供的版本更高时才会返回数据库。

示例

.show database TestDB schema as json

.show databases (TestDB, TestDB2) schema as json with(Tables=True, Functions=True)

输出

"{""Databases"":{""TestDB"":{""Name"":""TestDB"",""Tables"":{""Events"":{""Name"":""Events"",""DefaultColumn"":null,""OrderedColumns"":[{""Name"":""Name"",""Type"":""System.String""},{""Name"":""StartTime"",""Type"":""System.DateTime""},{""Name"":""EndTime"",""Type"":""System.DateTime""},{""Name"":""City"",""Type"":""System.String""},{""Name"":""SessionId"",""Type"":""System.Int32""}]}},""PrettyName"":null,""MajorVersion"":1,""MinorVersion"":1,""Functions"":{}}}}"

.show database schema as csl script

生成包含所有必需命令的 CSL 脚本,以创建给定的(或当前的)数据库架构的副本。

语法

.showdatabaseDatabaseNameschemaascslscript [with(Options)]

详细了解语法约定

参数

客户 类型​​ 必需 说明
DatabaseName string 要显示其架构的数据库的名称。
选项 string 用于确定要返回的内容的键值对(以逗号分隔)的列表。 请参阅支持的选项

支持的选项

密钥 说明
IncludeEncodingPolicies bool 默认为 true。 如果该项为 true,则会包括数据库/表/列级别的编码策略。
IncludeSecuritySettings bool 默认为 true。 如果该项为 true,则会包括以下选项:
- 数据库/表级别的已授权主体。
- 表级别的行级别安全策略。
- 表级别的受限查看访问策略。
IncludeIngestionMappings bool 默认为 true。 如果该项为 true,则会包括表级别的引入映射。
ShowObfuscatedStrings bool 默认为 false。 如果该项为 true,则会返回 Kusto 配置中保留的凭据。 若要使用此选项,你需是数据库管理员或实体创建者。 如果没有这些权限,该命令将失败。

返回

该脚本会以字符串形式返回,其中会包含:

  • 用于创建数据库中所有表的命令。
  • 用于将所有数据库/表/列策略设置为与原始策略匹配的命令。
  • 用于创建或更改数据库中所有用户定义的函数的命令。

示例

.show database TestDB schema as csl script

.show database TestDB schema as csl script with (ShowObfuscatedStrings = true)