_TransformView表
这是一个只读临时表,用于使用转换视图模式查看转换。 安装程序永远不会保留此表。
若要调用转换视图模式,请获取句柄并打开引用数据库。 请参阅 获取数据库句柄。 使用 MSITRANSFORM_ERROR_VIEWTRANSFORM 调用 MsiDatabaseApplyTransform。 这会停止将转换应用于数据库,并将转换内容转储到_TransformView表中。 可以使用 SQL 查询访问表中的数据。 请参阅 使用查询。
应用另一个转换时,不会清除_TransformView表。 该表反映了连续应用程序的累积效果。 若要单独查看转换,必须释放表。
_TransformView表具有以下列。
列 | 类型 | 钥匙 | 空 |
---|---|---|---|
桌子 | 标识符 | Y | N |
列 | 文本 | Y | N |
排 | 文本 | Y | Y |
数据 | 文本 | N | Y |
当前 | 文本 | N | Y |
列
-
表
-
已更改的数据库表的名称。
-
列
-
已更改的表列或 INSERT、DELETE、CREATE 或 DROP 的名称。
-
行
-
按选项卡分隔的主键值的列表。 Null 主键值由单个空格字符表示。 此列中的 Null 值指示架构更改。
-
数据
-
数据流的数据、数据流的名称或列定义。
-
当前
-
引用数据库中的当前值或数字列。
言论
_TransformView由锁计数保存在内存中,可以使用以下 SQL 命令释放。
“ALTER TABLE _TransformView FREE”。
可以使用 SQL 查询访问表中的数据。 SQL 语言有两个主要划分:用于定义 SQL 数据库中的所有对象的数据定义语言(DDL),以及用于选择、插入、更新和删除使用 DDL 定义的对象中的数据的数据作语言(DML)。
数据作语言(DML)转换作如下所示。 数据作语言(DML)是在 SQL 中作(而不是定义)数据的语句。
转换作 | SQL 结果 |
---|---|
修改数据 | {table}{column}{row}{data}{current value} |
插入行 | {table}“INSERT” {row} NULL NULL |
删除行 | {table}“DELETE” {row} NULL NULL |
数据定义语言(DDL)转换作如下所示。 数据定义语言(DDL)是 SQL 中定义的语句,而不是作数据。
转换作 | SQL 结果 |
---|---|
添加列 | {table}{column}NULL {defn} {column number} |
添加表 | {table}“CREATE”NULL NULL NULL |
删除表 | {table}“DROP”NULL NULL NULL |
当转换的应用程序添加此表时,Data 字段将接收可解释为 16 位整数值的文本。 该值描述在“列”字段中命名的列。 可以将整数值与下表中的常量进行比较,以确定已更改列的定义。
位 | 描述 |
---|---|
位 0 7 |
十六进制:0x0000 0x0100 小数:0 255 列宽 |
位 8 |
十六进制:0x0100 小数:256 永久性列。 零表示临时列。 |
位 9 |
十六进制:0x0200 十进制:1023 可本地化列。 零表示无法本地化列。 |
位 10 11 |
十六进制:0x0000 十进制数:0 长整数 十六进制:0x0400 小数:1024 短整数 十六进制:0x0800 小数:2048 Binary 对象 十六进制:0x0C00 小数:3072 字符串 |
位 12 |
十六进制:0x1000 小数:4096 可以为 Null 的列。 零表示该列不可为 null。 |
位 13 |
十六进制:0x2000 小数:8192 主键列。 零表示此列不是主键。 |
位 14 15 |
十六进制:0x4000 0x8000 小数:16384 32768 保留 |
有关演示_TransformView表的脚本示例,请参阅 查看转换。