.show database schema 命令
适用于:✅Azure 数据资源管理器
以下命令将数据库架构显示为表、JSON 对象或 CSL 脚本。
权限
你必须至少具有数据库用户、数据库查看者或数据库监视者权限才能运行这些命令。 有关详细信息,请参阅基于角色的访问控制。
.show database schema
语法
.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 schema as json
语法
.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"":{}}}}"
.show database schema as csl script
生成包含所有必需命令的 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 脚本
以下示例生成了一个 CSL 脚本,其中包含重新创建 TestDB
数据库架构所需的命令。
.show database TestDB schema as csl script
包含模糊值的 CSL 脚本
以下示例生成了一个 CSL 脚本,其中包含重新创建 TestDB
数据库架构所需的命令。 它包括上一个示例结果中被模糊处理的值。
.show database TestDB schema as csl script with (ShowObfuscatedStrings = true)