包含为管理数据层应用程序 (DAC) 而执行的操作的相关信息。 此表存储在 msdb 数据库的 dbo 架构中。
列名 |
数据类型 |
说明 |
---|---|---|
action_id |
int |
操作的标识符 |
sequence_id |
int |
标识某一操作内的步骤。 |
instance_id |
uniqueidentifier |
DAC 实例的标识符。 该列可以按 dbo.sysdac_instances (Transact-SQL) 中的 instance_id 列进行联接。 |
action_type |
tinyint |
操作类型的标识符: 0 = deploy 1 = create 2 = rename 3 = detach 4 = delete |
action_type_name |
varchar(19) |
操作类型的名称: deploy create rename detach delete |
dac_object_type |
tinyint |
受操作影响的对象类型的标识符: 0 = dacpac 1 = login 2 = database |
dac_object_type_name |
varchar(8) |
受操作影响的对象类型的名称: dacpac = DAC 实例 login database |
action_status |
tinyint |
标识当前操作状态的代码: 0 = pending 1 = success 2 = fail |
action_status_name |
varchar(11) |
操作的当前状态: pending success fail |
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 的完整历史记录。
![]() |
---|
目前,没有用于删除 Windows Azure SQL Database 上的 sysdac_history_internal 行的机制。 |
权限
要求具有 sysadmin 固定服务器角色的成员身份。 为具有连接到 master 数据库的权限的所有用户提供对此视图的只读访问权限。
请参阅
参考
dbo.sysdac_instances (Transact-SQL)
sysdac_instances_internal (Transact-SQL)