一个出发器
create trigger updateorderb2
on dbo.orderbl
for update
as
update dbo.orderxx set ifmoney=1 where orderID=(select top 1 orderrand from inserted)
update users set usermoney='convert((CONVERT(select usermoney from users where username=(select top 1 username from inserted))as decimal)
-CONVERT((select totleprice from orderbl where orderrand=(select top 1 orderrand from inserted)) as decimal) as nvarchar(50))' where username=(select top 1 username from inserted)
当更新orderbl中的inmoney=1的时候 同时更新 orderxx里所有外键=刚更新的主键值
然后同时把用户表中钱数减去相应的totleprice
由于totleprice和usermoney都为nvarchar(50)所以我把他转换成decimal
但是当我运行程序时 出现将截断字符串或二进制数据 问题
前辈们解啊!
create trigger updateorderb2
on dbo.orderbl
for update
as
update dbo.orderxx set ifmoney=1 where orderID=(select top 1 orderrand from inserted)
update users set usermoney='convert((CONVERT(select usermoney from users where username=(select top 1 username from inserted))as decimal)
-CONVERT((select totleprice from orderbl where orderrand=(select top 1 orderrand from inserted)) as decimal) as nvarchar(50))' where username=(select top 1 username from inserted)
当更新orderbl中的inmoney=1的时候 同时更新 orderxx里所有外键=刚更新的主键值
然后同时把用户表中钱数减去相应的totleprice
由于totleprice和usermoney都为nvarchar(50)所以我把他转换成decimal
但是当我运行程序时 出现将截断字符串或二进制数据 问题
前辈们解啊!
解决方案 »
- 【提问】DateTime处理问题
- 关于Autofac生命周期的问题
- Intelligencia.UrlRewriter支持中文参数吗?
- 关于一个排行榜的sql怎么写
- infragistics控件在asp.net中报错:OBJECT ERROR (不是IE设置的问题)
- 我想修改Request.QueryString某一项的值
- 超级连接问题地址栏总缺少根目录
- 如何在asp.net页面中加入一个永动的公告栏,不过内容要取自sqlserver的数据库?
- gridview标题中插入时间
- DataView 分页在哪里找? 分页后还用写代码吗?
- money = int.Parse("1.00"); 提示输入字符串的格式不正确。
- 新手问题呀11万火急急急++
-CONVERT(decimal(select totleprice from orderbl where orderrand=(select top 1 orderrand from inserted),2)))
试试!
on dbo.orderbl
for update
as
update dbo.orderxx set ifmoney=1 where orderID=(select top 1 orderrand from inserted)
update users set usermoney=CAST((CAST((select usermoney from users where username=(select top 1 username from inserted))as int(4))
-CAST((select totleprice from orderbl where orderrand=(select top 1 orderrand from inserted)) as int(4))) as nvarchar(50)) where username=(select top 1 username from inserted)
前一条都触发了
怎么更新USERS表里的钱就不触发了?还没有错误?
on dbo.orderbl
for update
as
update dbo.orderxx set ifmoney=1 where orderID=(select top 1 orderrand from inserted)
update users set usermoney=CAST((CAST((select usermoney from users where username=(select top 1 username from inserted))as decimal(9))
-CAST((select totleprice from orderbl where orderrand=(select top 1 orderrand from inserted)) as decimal(9))) as nvarchar(50)) where username=(select top 1 username from inserted)
问题解决了