【发布时间】:2018-07-07 21:38:10
【问题描述】:
我在名为“项目”的表中的一个项目的价格是 1.5750,只要价格发生变化,它就会更新到另一个表
这是我的更新触发器
update Ss
set price = cast( i.Price * 100 as int)
from Updateitems ss
inner join inserted i on i.ItemNo = ss.ItemNo
在项目表中,价格为 1.5750
更新后,UpdateItemTable 上的价格显示为158。
但是当我像这样直接执行查询时select cast( 1.5750 * 100 as int)
输出显示 157
为什么要更新158?
哪个是正确的?
注意:
价格数据类型是
item表上的钱
Updateitems表中的价格数据类型为 varchar
【问题讨论】:
-
列 i.Price 数据类型?
-
@jarlh 你能检查我的更新吗?
-
试试
select cast(cast(1.5750 as money) * 100 as int) ... -
顺便说一句,为什么价格列的数据类型不同?
-
@jarlh 请等一下兄弟。我会检查
标签: sql sql-server casting triggers sql-update