.show database schema 命令
適用於: ✅Microsoft網狀架構✅Azure 數據總管
下列命令會將資料庫架構顯示為數據表、JSON 物件或 CSL 腳本。
權限
您必須至少有資料庫使用者、資料庫查看器或資料庫監視器許可權,才能執行這些命令。 如需詳細資訊,請參閱角色型存取控制。
.show 資料庫架構
語法
.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 | 事件 | True | False | ||||
TestDB | 事件 | 名稱 | System.String | True | False | ||
TestDB | 事件 | StartTime | System.DateTime | True | False | ||
TestDB | 事件 | EndTime | System.DateTime | True | False | ||
TestDB | 事件 | 縣/市 | System.String | True | 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 | 事件 | True | False | ||||
TestDB | 事件 | 名稱 | System.String | True | False | ||
TestDB | 事件 | StartTime | System.DateTime | True | False | ||
TestDB | 事件 | EndTime | System.DateTime | True | False | ||
TestDB | 事件 | 縣/市 | System.String | True | False | ||
TestDB | 事件 | SessionId | System.Int32 | True | True |
因為提供的版本低於目前資料庫版本,因此會傳回 『TestDB』 架構。 提供相等或更高的版本會產生空的結果。
.show database schema as json
語法
.show
database
DatabaseName schema
[if_later_than
“Version”] as
json
.show
databases
(
DatabaseName [,
...])
as
schema
json
[with
(
Options])
.show
databases
(
DatabaseName if_later_than
“Version” [,
...] [with
(
Options])
schema
as
json
)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
DatabaseName | string |
✔️ | 要顯示架構的資料庫名稱。 |
版本 | string |
“vMM.mm” 格式的版本。 MM 代表主要版本,mm 代表次要版本。 | |
選項 | string |
用來判斷要傳回之資料庫實體架構的逗號分隔索引鍵/值組清單。 如果未指定任何實體,則會傳回所有實體。 請參閱 支持的實體選項。 |
支援的實體選項
下表描述要提供給 Options 參數的值。
機碼 | 值 | Description |
---|---|---|
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 csl
as
schema
script
[with
(
Options])
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
DatabaseName | string |
✔️ | 要顯示架構的資料庫名稱。 |
選項 | string |
用來判斷要傳回之專案的逗號分隔索引鍵/值組清單。 請參閱 支持的選項。 |
支援的選項
機碼 | 值 | Description |
---|---|---|
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)