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 行的机制。

更改历史记录

更新的内容

添加了用于删除行的方法。

添加了 requiredcomments 列。