資料層應用程式資料表 - sysdac_history_internal

適用於:SQL Server

包含管理資料層應用程式 (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 = create

2 = 重新命名

3 = 卸離

4 = 刪除
action_type_name Varchar(19) 動作類型的名稱:

部署

create

rename

分離

delete
dac_object_type tinyint 動作所影響之物件的型別識別碼:

0 = dacpac

1 = 登入

2 = 資料庫
dac_object_type_name Varchar(8) 受動作影響之物件類型的名稱:

dacpac = DAC 實例

登錄

database
action_status tinyint 識別動作目前狀態的程式碼:

0 = 擱置中

1 = 成功

2 = 失敗
action_status_name Varchar(11) 動作的目前狀態:

等待

成功

fail
必要 bit 資料庫引擎在回復 DAC 作業時使用。
dac_object_name_pretran sysname 認可包含動作之交易之前的物件名稱。 僅用於資料庫和登入。
dac_object_name_posttran sysname 認可包含動作之交易之後的物件名稱。 僅用於資料庫和登入。
sqlscript nvarchar(max) 在資料庫或登入上實作動作的 Transact-SQL 腳本。
負載 varbinary(max) 儲存在二進位編碼字串中的 DAC 封裝定義。
註解 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 作業,例如 delete,不會從 sysdac_history_internal 移除資料列。 您可以使用下列查詢,手動刪除不再部署在 Database Engine 實例上之 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 的完整歷程記錄。

注意

目前,Azure SQL Database 上沒有刪除 sysdac_history_internal 資料列的機制。

權限

需要 系統管理員 (sysadmin) 固定伺服器角色中的成員資格。 此檢視的唯讀存取權可供具有連線到 master 資料庫之許可權的所有使用者使用。

另請參閱

資料層應用程式
dbo.sysdac_instances (Transact-SQL)
sysdac_instances_internal (Transact-SQL)