Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies to: ✅ Azure Data Explorer
The following commands show database schema as a table, JSON object, or CSL script.
Permissions
You must have at least Database User, Database Viewer, or Database Monitor permissions to run these commands. For more information, see role-based access control.
.show database schema
Syntax
.show database DatabaseName schema [details] [if_later_than "Version"]
.show databases (DatabaseName [, ...]) schema details
.show databases (DatabaseName if_later_than "Version" [, ...]) schema details
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| DatabaseName | string |
✔️ | The name of the database for which to show the schema. |
| Version | string |
The version in "vMM.mm" format. MM represents the major version and mm represents the minor version. |
Returns
Returns a flat list of the structure of the selected databases with all their tables and columns in a single table or JSON object. When used with a version, the database is only returned if it's a later version than the version provided.
Examples
Show database schema
The following example displays the TestDB database schema. The database TestDB has one table called Events.
.show database TestDB schema
Output
| DatabaseName | TableName | ColumnName | ColumnType | IsDefaultTable | IsDefaultColumn | PrettyName | Version |
|---|---|---|---|---|---|---|---|
| TestDB | False | False | v.1.1 | ||||
| TestDB | Events | True | False | ||||
| TestDB | Events | Name | System.String | True | False | ||
| TestDB | Events | StartTime | System.DateTime | True | False | ||
| TestDB | Events | EndTime | System.DateTime | True | False | ||
| TestDB | Events | City | System.String | True | False | ||
| TestDB | Events | SessionId | System.Int32 | True | True |
Show database schema based on version
In the following example, the database is only returned if it's a later version than the version provided.
.show database TestDB schema if_later_than "v1.0"
Output
| DatabaseName | TableName | ColumnName | ColumnType | IsDefaultTable | IsDefaultColumn | PrettyName | Version |
|---|---|---|---|---|---|---|---|
| TestDB | False | False | v.1.1 | ||||
| TestDB | Events | True | False | ||||
| TestDB | Events | Name | System.String | True | False | ||
| TestDB | Events | StartTime | System.DateTime | True | False | ||
| TestDB | Events | EndTime | System.DateTime | True | False | ||
| TestDB | Events | City | System.String | True | False | ||
| TestDB | Events | SessionId | System.Int32 | True | True |
Because a version lower than the current database version was provided, the 'TestDB' schema was returned. Providing an equal or higher version would generate an empty result.
.show database schema as json
Syntax
.show database DatabaseName schema [if_later_than "Version"] as json
.show databases (DatabaseName [, ...]) schema as json [with (Options)]
.show databases (DatabaseName if_later_than "Version" [, ...]) schema as json [with (Options)]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| DatabaseName | string |
✔️ | The name of the database for which to show the schema. |
| Version | string |
The version in "vMM.mm" format. MM represents the major version and mm represents the minor version. | |
| Options | string |
A list of comma-separated key-value pairs used to determine which database entity schemas to return. If none are specified, then all entities are returned. See supported entity options. |
Supported entity options
The following table describes the values to provide for the Options parameter.
| Key | Value | Description |
|---|---|---|
Tables |
bool |
If true, tables are returned. |
ExternalTables |
bool |
If true, external tables are returned. |
MaterializedViews |
bool |
If true, materialized views are returned. |
Functions |
bool |
If true, functions are returned. |
Returns
Returns a flat list of the structure of the selected databases with all their tables and columns as a JSON object. When used with a version, the database is only returned if it's a later version than the version provided.
Examples
The following example returns the TestDB database schema in JSON format.
.show database TestDB schema as json
.show databases (TestDB, TestDB2) schema as json with(Tables=True, Functions=True)
Output
"{""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
Generates a CSL script with all the required commands to create a copy of the given (or current) database schema.
Syntax
.show database DatabaseName schema as csl script [with (Options)]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| DatabaseName | string |
✔️ | The name of the database for which to show the schema. |
| Options | string |
A list of comma-separated key-value pairs used to determine what to return. See supported options. |
Supported options
| Key | Value | Description |
|---|---|---|
IncludeEncodingPolicies |
bool |
Defaults to true. If true, encoding policies at the database/table/column level are included. |
IncludeSecuritySettings |
bool |
Defaults to true. If true, the following options are included:- Authorized principals at the database/table level. - Row level security policies at the table level. - Restricted view access policies at the table level. |
IncludeIngestionMappings |
bool |
Defaults to true. If true, ingestion mappings at the table level are included. |
ShowObfuscatedStrings |
bool |
Defaults to false. If true, credentials persisted in Kusto configurations are returned. To use this option, you must either be a database admin or entity creator. If you don't have these permissions, the command fails. |
Returns
The script, returned as a string, contains:
- Commands to create all the tables in the database.
- Commands to set all database/tables/columns policies to match the original policies.
- Commands to create or alter all user-defined functions in the database.
Examples
CSL script
The following example generates a CSL script with the needed commands to recreate the TestDB database schema.
.show database TestDB schema as csl script
CSL script with obfuscated values
The following example generates a CSL script with the needed commands to recreate the TestDB database schema. It includes values that were obfuscated in the results of the previous example.
.show database TestDB schema as csl script with (ShowObfuscatedStrings = true)