sqlSERVER,里面如何建立这样的功能的trigger

coolvc 2002-05-23 02:28:19
一个TABLE1 name 字段 唯一

第2个TABLE2 很多记录,name ,nu字段不是唯一


当我对第2个TABLE UPDATE的时候,,比如我对nu改了,然后我要触发

talbe 里面的资料,应该怎么做, 关键是怎么得到 name的参数,而不是,所有的

都关联操作, 比如我改了 update table2 nu="dd" where name="ddd"

trigger 应该怎么些,才可以吧把 where name=ddd 这个参数告诉TABLE
...全文
43 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
firetoucher 2002-05-23
  • 打赏
  • 举报
回复
同意楼上用inserted
badtank 2002-05-23
  • 打赏
  • 举报
回复
agree with N_Chow(一劍飄香)
使用虚表
biscuit26 2002-05-23
  • 打赏
  • 举报
回复
CREATE TRIGGER trg1 ON table
FOR UPDATE
AS
if update(name)
begin
update ....
....select name from inserted)//inserted表放着修改之后的数据,"dd"
from bgs.daanml
....select dabh from deleted)//deleted表放着修改之前的数据,如"ddd"
end
update类型的触发器产生两张表,一为inserted,一为deleted

N_chow 2002-05-23
  • 打赏
  • 举报
回复
name參數在inserted/deleted這兩個虛擬表里面記錄著呀。

UPDATE table1 SET nu=inserted.nu from table1 INNER JOIN inserted ON nu.name=inserted.name

--需求是不是這樣?

N_chow 2002-05-23
  • 打赏
  • 举报
回复
name參數在inserted/deleted這兩個虛擬表里面記錄著呀。

UPDATE table1 SET nu=inserted.nu from table1 INNER JOIN inserted ON nu.name=inserted.name

--需求是不是這樣?

OpenVMS 2002-05-23
  • 打赏
  • 举报
回复
建立两个表的视图
用 create trigger view_trigger on my_view
instead of update,insert,delete
as
begin
-
...
end
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为什么要使用触发器?比如,这么两个表: Create Table Student( --学生表 StudentID int primary key, --学号 .... ) Create Table BorrowRecord( -学生借书记录表 BorrowRecord int identity(1,1), --流水号 StudentID int , --学号 BorrowDate datetime, --借出时间 ReturnDAte Datetime, --归还时间 ... ) 用到的功能有: 1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号); 2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。 这时候可以用到触发器。对于1,创建一个Update触发器: Create Trigger truStudent On Student --在Student表中创建触发器 for Update --为什么事件触发 As --事件触发后所要做的事情 if Update(StudentID) begin Update BorrowRecord Set StudentID=i.StudentID From BorrowRecord br , Deleted d ,Inserted i --Deleted和Inserted临时表 Where br.StudentID=d.StudentID end 理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。

34,590

社区成员

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

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