在SQL Server 2000中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限制“销售价格”的取值必须在此商品“单价”的0.6~1.5倍范围之内,实现这个约束的正确代码是______。 A)CHECK(销售价格BETWE

admin2012-04-09  19

问题 在SQL Server 2000中,有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售价格)。现要限制“销售价格”的取值必须在此商品“单价”的0.6~1.5倍范围之内,实现这个约束的正确代码是______。
A)CHECK(销售价格BETWEEN单价×0.6 AND单价×1.5)
B)CHECK(销售价格BETWEEN商品表.单价×0.6 AND商品表.单价×1.5)
C)CREATE TRIGGER tri_Sales ON销售表FOR INSERT,UPDATE
   AS
   IF EXISTS(SELECT * FROM INSERTED a JOIN商品表b
   ON a.商品号=b.商品号
   WHERE销售价格NOT BETWEEN单价×0.6 AND单价×1.5)
   ROLLBACK
D)CREATE TRIGGER tri_Sales ON销售表
   INSTEAD OF INSERT,UPDATE
   AS
   IF EXISTS(SELECT×FROM INSERTED a JOIN商品表b
   ON a.商品号=b.商品号
   WHERE销售价格NOT BETWEEN单价×0.6 AND单价×1.5)
   ROLLBACK

选项 A、 
B、 
C、 
D、 

答案D

解析 FOR指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,这种触发器称为后触发型触发器。INSTEAD OF指定执行触发器而不是执行引发触发器执行的SQL语句,从而替代触发语句的操作,这种触发器称为前触发型触发器。
转载请注明原文地址:https://kaotiyun.com/show/KFAZ777K
0

最新回复(0)