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 = 配置 (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 パッケージ定義。 |
コメント |
varchar(max) |
DAC のアップグレードでの潜在的なデータ損失を許可したユーザーのログインを記録します。 |
error_string |
nvarchar(max) |
アクションにエラーが発生した場合に生成されるエラー メッセージ。 |
created_by |
sysname |
このエントリを作成したアクションを開始したログイン。 |
date_created |
datetime |
このエントリが作成された日時。 |
date_modified |
datetime |
エントリを前回変更した日時。 |
説明
DAC 管理アクション (DAC の配置、削除など) では、複数のステップが生成されます。 各アクションには、アクション識別子が割り当てられます。 各ステップには、シーケンス番号と sysdac_history_internal 内の行が 1 つずつ割り当てられ、ここにステップのステータスが記録されます。 アクション ステップが開始されると各行が作成され、操作のステータスを反映する必要に応じて更新されます。 たとえば、DAC の配置アクションには action_id 12 が割り当てられ、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 の完全な履歴をレポートできなくなる点のみです。
注 |
---|
現在、Windows Azure SQL データベースで sysdac_history_internal の行を削除するメカニズムはありません。 |
権限
sysadmin 固定サーバー ロールのメンバーシップが必要です。 このビューは、master データベースに接続するための権限を持つすべてのユーザーが読み取り専用で使用できます。
関連項目
参照
dbo.sysdac_instances (Transact-SQL)
sysdac_instances_internal (Transact-SQL)