.execute database script 命令
适用于:✅Azure 数据资源管理器
在单一数据库范围内执行一系列管理命令。
注意
在运行命令之前,请选择完整的命令文本。 否则,它将在脚本中的第一个空行处停止。
权限
你必须至少具有数据库管理员权限才能运行此命令。
语法
.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 模板,并重新创建资源。
示例
以下示例执行了一个包含多个操作的脚本,即使命令失败也会继续执行。 该脚本会创建或合并表 T
和字符串类型的列 a
和 b
。 然后会在表 T
上设置保留策略,以便在 10 天后软删除数据。 最后,它会创建或修改 SampleT1
函数,该函数接收长类型的参数 myLimit
,并返回表 T1
中的前 myLimit
行。 创建函数时未进行验证。
.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} | 已完成 |