sysdac_history_internal (Transact-SQL)
包含有关管理数据层应用程序 (DAC) 要执行的操作的信息。此表存储在 msdb 数据库的 dbo 架构中。
列名 |
数据类型 |
说明 |
---|---|---|
action_id |
int |
操作的标识符 |
sequence_id |
int |
标识某一操作内的步骤。 |
instance_id |
uniqueidentifier |
DAC 实例的标识符。该列可以按 dbo.sysdac_instances (Transact-SQL) 中的 instance_id 列进行联接。 |
action_type |
tinyint |
操作类型的标识符: 0 = 部署 1 = 创建 2 = 重命名 3 = 分离 4 = 删除 |
action_type_name |
varchar(19) |
操作类型的名称: 部署 创建 重命名 分离 删除 |
dac_object_type |
tinyint |
受操作影响的对象类型的标识符: 0 = dacpac 1 = 登录名 2 = 数据库 |
dac_object_type_name |
varchar(8) |
受操作影响的对象类型的名称: dacpac = DAC 实例 登录 数据库 |
action_status |
tinyint |
标识当前操作状态的代码: 0 = 挂起 1 = 成功 2 = 失败 |
action_status_name |
varchar(11) |
操作的当前状态: 挂起 成功 失败 |
Required |
bit |
在回滚某一 DAC 操作时由数据库引擎使用。 |
dac_object_name_pretran |
sysname |
在提交包含操作的事务前对象的名称。仅用于数据库和登录名。 |
dac_object_name_posttran |
sysname |
在提交包含操作的事务后对象的名称。仅用于数据库和登录名。 |
sqlscript |
nvarchar(max) |
对数据库或登录名实现操作的 Transact-SQL 脚本。 |
payload |
varbinary(max) |
在二进制编码字符串中保存的 DAC 包定义。 |
comments |
varchar(max) |
记录接受了 DAC 升级中可能的数据丢失的用户的登录名。 |
error_string |
nvarchar(max) |
在操作遇到错误时生成的错误消息。 |
created_by |
sysname |
启动了创建此条目的操作的登录名。 |
date_created |
datetime |
该条目的创建日期和时间。 |
date_modified |
datetime |
最后修改该条目的日期和时间。 |
注释
DAC 管理操作(例如部署或删除 DAC)会产生多个步骤。为每个操作都分配一个操作标识符。为每个步骤都分配一个序列号和 sysdac_history_internal 中的一行(在其中记录该步骤的状态)。在该操作开始时创建每一行,并且根据需要进行更新以便反映该操作的状态。例如,可以向一个部署 DAC 操作分配 action_id 12,并且在 sysdac_history_internal 中获取四行:
action_id |
sequence_id |
action_type_name |
dac_object_type_name |
12 |
0 |
create |
dacpac |
12 |
1 |
create |
login |
12 |
2 |
create |
database |
12 |
3 |
rename |
database |
DAC 操作(例如删除)不从 sysdac_history_internal 中删除行。您可以使用以下查询手动删除不再部署在数据库引擎实例上的 DAC 的行:
DELETE FROM msdb.dbo.sysdac_history_internal
WHERE instance_id NOT IN
(SELECT instance_id
FROM msdb.dbo.sysdac_instances_internal);
为活动 DAC 删除行并不影响 DAC 操作;唯一影响是您将不能报告该 DAC 的完整历史记录。
注意 |
---|
目前,没有用于在 SQL Azure 上删除 sysdac_history_internal 行的机制。 |
更改历史记录
更新的内容 |
---|
添加了用于删除行的方法。 |
添加了 required 和 comments 列。 |