_TransformView 表

这是一个只读临时表,用于使用转换视图模式查看转换。 安装程序永远不会保留此表。

若要调用转换视图模式,请获取句柄并打开引用数据库。 请参阅获取数据库句柄。 使用 MSITRANSFORM_ERROR_VIEWTRANSFORM 调用 MsiDatabaseApplyTransform。 这会阻止将转换应用于数据库,而且会将转换内容转储到 _TransformView 表中。 可以使用 SQL 查询访问表中的数据。 请参阅使用查询

应用另一个转换时,不会清除 _TransformView 表。 该表反映了连续应用所产生的累积效果。 若要单独查看转换,必须释放表。

_TransformView 表包含以下列。

类型 密钥 Nullable
Identifier Y N
文本 Y N
文本 Y Y
数据 文本 N Y
当前 文本 N Y

已更改的数据库表的名称。

已更改的表列的名称或 INSERT、DELETE、CREATE 或 DROP。

由选项卡分隔的主键值的列表。 Null 主键值由单个空格字符表示。 此列中的 Null 值表示架构变更。

数据

数据、数据流的名称或列定义。

当前值

来自引用数据库的当前值或列号。

备注

_TransformView 由锁计数保留在内存中,可以使用以下 SQL 命令释放该计数。

"ALTER TABLE _TransformView FREE"。

可以使用 SQL 查询访问表中的数据。 SQL 语言有两个主要部分:数据定义语言 (DDL),用于定义 SQL 数据库中的所有对象;数据操作语言 (DML),用于在使用 DDL 定义的对象中选择、插入、更新和删除数据。

数据操作语言 (DML) 转换操作如下所示。 数据操作语言 (DML) 是 SQL 中处理数据(而不是定义数据)的语句。

转换操作 SQL 结果
修改数据 {表} {列} {行} {数据} {当前值·}
插入行 {table} "INSERT" {row} NULL NULL
删除行 {table} "DELETE" {row} NULL NULL

数据定义语言 (DDL) 转换操作如下所示。 数据定义语言 (DDL) 是 SQL 中的语句,用来定义数据,而不是操作数据。

转换操作 SQL 结果
添加列 {表} {列} NULL {defn} {列编号}
添加表 {table} "CREATE" NULL NULL NULL
删除表 {table} "DROP" NULL NULL NULL

当应用转换添加此表时,Data 字段将接收可解释为 16 位整数值的文本。 值描述 Column 字段中命名的列。 可以将整数值与下表中的常量进行比较,以确定更改的列的定义。

bit 说明
Bits 0 7
十六进制:0x0000 0x0100
十进制:0 255
列宽
位 8
十六进制:0x0100
十进制:256
永久性列。 零表示临时列。
位 9
十六进制:0x0200
十进制:1023
可本地化的列。 零表示无法本地化列。
Bits 10 11
十六进制:0x0000
十进制:0
Long integer
十六进制:0x0400
十进制:1024
短整数
十六进制:0x0800
十进制:2048
Binary 对象
十六进制:0x0C00
十进制:3072
String
位 12
十六进制:0x1000
十进制:4096
不可为 null 的列。 零表示列不可为空。
位 13
十六进制:0x2000
十进制:8192
主键列。 零表示此列不是主键。
Bits 14 15
十六进制:0x4000 0x8000
十进制:16384 32768
预留

有关演示 _TransformView 表的脚本示例,请参阅查看转换