.execute database script 命令

在单一数据库范围内执行一系列管理命令。

注意

在运行命令之前,请选择完整的命令文本。 否则,它将在脚本中的第一个空行处停止。

权限

你必须至少具有数据库管理员权限才能运行此命令。

语法

.execute database script
[with(PropertyName=PropertyValue [, ...])] <|ControlCommandsScript

详细了解语法约定

参数

客户 类型​​ 必需 说明
ControlCommandsScript string 包含一个或多个管理命令的文本。
PropertyName, PropertyValue string 可选属性。 请参阅支持的属性

支持的属性

PropertyName 类型 说明
ContinueOnErrors bool 如果设置为 false - 脚本在发生第一个错误时停止。 如果设置为 true,脚本将继续执行。 默认:false
ThrowOnErrors bool 如果设置为 true - 脚本在发生第一个错误时引发错误(失败)。 不能与 ContinueOnErrors 一起使用,只允许使用一个。 默认:false

返回

脚本中显示的每个命令在输出表中都显示为一条单独记录。 每个记录都具有以下字段:

输出参数 类型 说明
OperationId guid 命令的标识符。
CommandType string 命令的类型。
CommandText string 特定命令的文本。
Result string 特定命令执行的结果。
原因 string 有关命令执行结果的详细信息。

注意

  • 脚本文本可能包括命令之间的空行和注释。
  • 命令按它们在输入脚本中出现的顺序依次执行。
  • 脚本执行是按顺序的,但不是事务性的,并且在出现错误时不会执行回滚。 建议在使用 .execute database script 时使用幂等形式的命令。
  • 执行该命令需要数据库管理员权限,以及每个特定命令可能需要的权限。
  • 命令的默认行为 - 在第一个错误处失败,可以使用属性参数对其进行更改。
  • 不执行只读管理命令(.show 命令),并以 Skipped 状态报告这些命令。

提示

  • 如果想要“克隆”/“复制”现有数据库,则此命令很有用。 可以在现有数据库(源数据库)上使用 .show database schema command,并将其输出用作“.execute database script”的 Control-commands-script。
  • 如果要“克隆”/“复制”群集,可以导出其 ARM 模板并重新创建资源。

示例

.execute database script with (ContinueOnErrors=true)
<|
//
// Create tables
.create-merge table T(a:string, b:string)
//
// Apply policies
.alter-merge table T policy retention softdelete = 10d 
//
// Create functions
.create-or-alter function
  with (skipvalidation = "true") 
  SampleT1(myLimit: long) { 
    T1 | take myLimit
}
OperationId CommandType CommandText 结果 Reason
1d28531b-58c8-4023-a5d3-16fa73c06cfa TableCreate .create-merge table T(a:string, b:string) 已完成
67d0ea69-baa4-419a-93d3-234c03834360 RetentionPolicyAlter .alter-merge table T policy retention softdelete = 10d 已完成
0b0e8769-d4e8-4ff9-adae-071e52a650c7 FunctionCreateOrAlter .create-or-alter function with (skipvalidation = "true")SampleT1(myLimit: long) {T1 | take myLimit} 已完成