共用方式為


.show database schema 命令

適用於: ✅Microsoft網狀架構Azure 數據總管

下列命令會將資料庫架構顯示為數據表、JSON 物件或 CSL 腳本。

權限

您必須至少有資料庫使用者、資料庫查看器或資料庫監視器許可權,才能執行這些命令。 如需詳細資訊,請參閱角色型存取控制

.show 資料庫架構

語法

.showdatabase DatabaseName schema [details] [if_later_than “Version”]

.showdatabases (DatabaseName [, ...]) schema details

.showdatabases (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

語法

.showdatabase DatabaseName schema [if_later_than “Version”] as json

.showdatabases (DatabaseName [, ...]) as schema json [with( Options])

.showdatabases (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 腳本,其中包含建立指定資料庫架構複本的所有必要命令。

語法

.showdatabase 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)