_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 表的脚本示例,请参阅查看转换。