建触发器问题(不知怎么了)

NarutoZan 2009-12-26 03:52:05


我想创建一个建触发器 : 功能是 在< dbo.Orders_Details> 表update <Price> 资料行 后 把 另一个资料行 <Fee> 的 值 改为<Price>的值的 10%
如下:

xxxx Price Fee xxxxxx
……. 600 60 …..
……. 850 85 …….

Create Trigger Test1
On dbo.Orders_Details --在Orders_Details表中创建触发器
for Update--为什么事件触发
As--事件触发后所要做的事情
if Update(Price)
begin

Update dbo.Orders_Details
Set Fee=Price * 0.1

End

创建触发器之后每次 update <Price>数据行都出错误 + 无法 update ??
出了什么问题啦?

...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
NarutoZan 2009-12-28
  • 打赏
  • 举报
回复
加了這句 ok 了
where RFC_no=(select RFC_no from deleted)
Thanks everybody
NarutoZan 2009-12-27
  • 打赏
  • 举报
回复
主键 應該是什麼呢 ? 在 < dbo.Orders_Details> 表中沒有設定 Primary Key . 那應該再加一個资料行<RFC_no> 把它設為 Primary Key 然後再加上 where RFC_no=(select RFC_no from deleted) 就可以了嗎?????
喜-喜 2009-12-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nianran520 的回复:]
SQL codeCreateTrigger Test1On dbo.Orders_Details--在Orders_Details表中创建触发器forUpdate--为什么事件触发As--事件触发后所要做的事情ifUpdate(Price)beginUpdate dbo.Orders_DetailsSet Fee=Price*0.1where 主键=(select 主键from deleted)E?-
[/Quote]

学习
haochin 2009-12-27
  • 打赏
  • 举报
回复

Create Trigger Test1
On dbo.Orders_Details --在Orders_Details表中创建触发器
for Update--为什么事件触发
As--事件触发后所要做的事情
if Update(Price)
begin

Update dbo.Orders_Details
Set Fee=Price * 0.1
where 主键=(select 主键 from deleted)

End
dawugui 2009-12-27
  • 打赏
  • 举报
回复
看错,把1楼的看成楼主的了.
就是如一楼,加个条件即可.
dawugui 2009-12-27
  • 打赏
  • 举报
回复
Create Trigger Test1
On dbo.Orders_Details --在Orders_Details表中创建触发器
for Update--为什么事件触发
As--事件触发后所要做的事情
begin
Update dbo.Orders_Details
Set Fee=Price * 0.1
where 主键=(select 主键 from deleted)
End
go
你写的没问题啊.
gxjwqm 2009-12-27
  • 打赏
  • 举报
回复
Create Trigger Test1 
On dbo.Orders_Details --在Orders_Details表中创建触发器
for Update--为什么事件触发
As--事件触发后所要做的事情
if Update(Price)
begin

Update dbo.Orders_Details
Set Fee=Price * 0.1
where 主键=(select 主键 from deleted)

End

你写的虽然有问题,但是应该能执行啊,出现错误了,是不是你的update报的错呢 先去掉触发器update一下看可以吗
SQL77 2009-12-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nianran520 的回复:]
SQL codeCreateTrigger Test1On dbo.Orders_Details--在Orders_Details表中创建触发器forUpdate--为什么事件触发As--事件触发后所要做的事情ifUpdate(Price)beginUpdate dbo.Orders_DetailsSet Fee=Price*0.1where 主键=(select 主键from deleted)E?-
[/Quote]
加条件限定更改哪行
SQL77 2009-12-26
  • 打赏
  • 举报
回复
Create Trigger Test1
On dbo.Orders_Details --在Orders_Details表中创建触发器
for Update--为什么事件触发
As--事件触发后所要做的事情
if Update(Price)
begin

Update dbo.Orders_Details
Set Fee=Price * 0.1

End

你这样把所有都改了,
nianran520 2009-12-26
  • 打赏
  • 举报
回复
Create Trigger Test1 
On dbo.Orders_Details --在Orders_Details表中创建触发器
for Update--为什么事件触发
As--事件触发后所要做的事情
if Update(Price)
begin

Update dbo.Orders_Details
Set Fee=Price * 0.1
where 主键=(select 主键 from deleted)

End

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧