次の方法で共有


データ層アプリケーション テーブル - 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 = delete
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) アクションの現在のステータス。

保留中

成功

fail
必須 bit DAC 操作をロールバックするときに、データベース エンジンによって使用されます。
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 アクションを 12 action_id 割り当てて、 sysdac_history_internalで 4 つの行を取得できます。

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 の完全な履歴を報告できないことです。

Note

現時点では、Azure SQL Database で sysdac_history_internal 行を削除するメカニズムはありません。

アクセス許可

sysadmin 固定サーバー ロールのメンバーシップが必要です。 このビューへの読み取り専用アクセスは、マスター データベースに接続するアクセス許可を持つすべてのユーザーが使用できます。

参照

データ層アプリケーション
dbo.sysdac_instances (Transact-SQL)
sysdac_instances_internal (Transact-SQL)