我们如何指定更新而不是更新触发器

时间:2016-01-11 11:33:09

标签: sql-server tsql triggers

我正在研究触发器,现在我想知道一些事情。当我们声明INSTEAD OF UPDATE触发器时会发生什么?我们如何将插入的元组的参数传递给触发器代码?这是我研究的书中的问题,我对这个问题的回答如下。我不确定这是否属实,但至少我需要在处理它们时为触发器插入或更新元组。非常感谢。

将以下内容写为触发器。在每种情况下,禁止或 如果修改不满足所述约束,则撤消修改。数据库 schema来自练习2.4.1的“PC”示例: 产品(制造商,型号,型号) PC(型号,速度,内存,高清,价格) 笔记本电脑(模型,速度,内存,高清,屏幕,价格) 打印机(型号,颜色,类型,价格)

! c)对笔记本电脑关系进行任何修改时,请检查 每个制造商的笔记本电脑平均价格至少为1500美元。

我的代码是;

CREATE TRIGGER check_avg on Laptop
select avg(price) as price, manufacturer from Laptop L
group by(manufacturer)
declare @avg = select price from L
if(@avg<1500)
begin
print 'average price of the manufacturer' + select manufacturer from L where price = @avg +'is less than 1500 update is rejected'
end

1 个答案:

答案 0 :(得分:1)

您不会将参数传递给触发器。触发器本身可以访问两个名为inserteddeleted的虚拟表,其中包含由触发触发器的操作插入或删除的行。