有关计算列值插入与更新的注意事项包括以下几项:
直接插入和更新 INSERT 或 UPDATE 语句能够为计算列指定值;然而,该值被忽略。服务器根据 COMPUTE 说明算出计算列的值,并使用计算值替代在 INSERT 或 UPDATE 语句中指定的值。
列依赖性 强烈建议您不要使用触发器设置计算列的定义中引用的列值(例如,将 NULL 值更改为非 NULL 值),因为这会导致计算列的值不反映所需的计算。
列出列名 您必须始终在 INSERT 语句中显式指定具有计算列的表的列名。
触发器 如果对计算列定义触发器,任何影响该列的 INSERT 或 UPDATE 语句都将触发触发器。
LOAD TABLE 语句允许对计算列进行可选 计算。加载操作期间取消计算会使复杂的卸载/重装序列执行得更快。当计算列的值必须保持不变的情况下,这样做也很有用,即使 COMPUTE 表达式引用不确定值(如 CURRENT TIMESTAMP)。
避免更改触发器中相关列的值,因为这会导致计算列的值与列定义不一致。
如果计算列 x 依赖于已声明非 NULL 的列 y,则尝试将 y 设置为 NULL 将会在触发器触发之前被拒绝,并生成错误消息。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |