本文内容
适用于:✅Azure 数据资源管理器
以下命令将数据库架构显示为表、JSON 对象或 CSL 脚本。
你必须至少具有数据库用户、数据库查看者或数据库监视者权限才能运行这些命令。 有关详细信息,请参阅基于角色的访问控制。
.show
database
DatabaseName schema
[details
] [if_later_than
"Version"]
.show
databases
(
DatabaseName [,
...])
schema
details
.show
databases
(
DatabaseName if_later_than
"Version" [,
...])
schema
details
详细了解语法约定。
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
DatabaseName | string |
✔️ | 要显示其架构的数据库的名称。 |
版本 | string |
采用“vMM.mm”格式的版本。 MM 代表主版本,mm 代表次要版本。 |
返回所选数据库的结构的简单列表,其所有表和列都在单个表或 JSON 对象中。 与版本一起使用时,只有在版本比提供的版本更高时才会返回数据库。
以下示例显示了 TestDB
数据库架构。 数据库 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
DatabaseName schema
[if_later_than
“版本”] as
json
.show
databases
(
DatabaseName [,
...])
schema
as
json
[with
(
Options)
]
.show
databases
(
DatabaseName if_later_than
"Version" [,
...])
schema
as
json
[with
(
Options)
]
详细了解语法约定。
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
DatabaseName | string |
✔️ | 要显示其架构的数据库的名称。 |
版本 | string |
采用“vMM.mm”格式的版本。 MM 代表主版本,mm 代表次要版本。 | |
选项 | string |
逗号分隔的键值对列表,这些键值对用于确定要返回哪些数据库实体架构。 如果未指定任何值,则会返回所有实体。 请参阅支持的实体选项。 |
下表描述了要为 Options 参数提供的值。
密钥 | 值 | 说明 |
---|---|---|
Tables |
bool |
如果该项为 true ,则会返回表。 |
ExternalTables |
bool |
如果该项为 true ,则会返回外部表。 |
MaterializedViews |
bool |
如果该项为 true ,则会返回具体化视图。 |
Functions |
bool |
如果该项为 true ,则会返回函数。 |
返回所选数据库的结构的简单列表,这些数据库所有的表和列都作为 JSON 对象返回。 与版本一起使用时,只有在版本比提供的版本更高时才会返回数据库。
以下示例以 JSON 格式返回 TestDB
数据库架构。
.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"":{}}}}"
生成包含所有必需命令的 CSL 脚本,以创建给定的(或当前的)数据库架构的副本。
.show
database
DatabaseName schema
as
csl
script
[with
(
Options)
]
详细了解语法约定。
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
DatabaseName | string |
✔️ | 要显示其架构的数据库的名称。 |
选项 | string |
用于确定要返回的内容的键值对(以逗号分隔)的列表。 请参阅支持的选项。 |
密钥 | 值 | 说明 |
---|---|---|
IncludeEncodingPolicies |
bool |
默认为 true 。 如果该项为 true ,则会包括数据库/表/列级别的编码策略。 |
IncludeSecuritySettings |
bool |
默认为 true 。 如果该项为 true ,则会包括以下选项:- 数据库/表级别的已授权主体。 - 表级别的行级别安全策略。 - 表级别的受限查看访问策略。 |
IncludeIngestionMappings |
bool |
默认为 true 。 如果该项为 true ,则会包括表级别的引入映射。 |
ShowObfuscatedStrings |
bool |
默认为 false 。 如果该项为 true ,则会返回 Kusto 配置中保留的凭据。 若要使用此选项,你需是数据库管理员或实体创建者。 如果没有这些权限,该命令将失败。 |
该脚本会以字符串形式返回,其中包含:
- 用于创建数据库中所有表的命令。
- 用于将所有数据库/表/列策略设置为与原始策略匹配的命令。
- 用于创建或更改数据库中所有用户定义的函数的命令。
以下示例生成了一个 CSL 脚本,其中包含重新创建 TestDB
数据库架构所需的命令。
.show database TestDB schema as csl script
以下示例生成了一个 CSL 脚本,其中包含重新创建 TestDB
数据库架构所需的命令。 它包括上一个示例结果中被模糊处理的值。
.show database TestDB schema as csl script with (ShowObfuscatedStrings = true)