資料層應用程式資料表 - 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 = 建立

2 = 重新命名

3 = 卸離

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

deploy

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) 動作的目前狀態:

暫止

成功

失敗
必要 bit 當復原 DAC 作業時,Database Engine 會使用。
dac_object_name_pretran sysname 認可包含動作之交易前的物件名稱。 僅用於資料庫與登入。
dac_object_name_posttran sysname 認可包含動作之交易後的物件名稱。 僅用於資料庫與登入。
sqlscript nvarchar(max) 在資料庫或登入上實作動作的 Transact-SQL 腳本。
payload 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 建立 dacpac
12 1 建立 login
12 2 建立 [資料庫]
12 3 重新命名 [資料庫]

DAC 作業,例如 delete,不會從 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 的完整記錄。

注意

目前沒有任何機制可在 Azure SQL Database 上刪除sysdac_history_internal資料列。

權限

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

另請參閱

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