T-Sql(六)触发器(trigger)

原创
2016-06-07 17:38:26 664浏览

不知不觉讲到触发器了,一般我们做程序的很少接触到触发器,触发器的操作一般是DB人员来完成。 然而有的时候一些简单的业务需要我们自己去完成,不能每次都去麻烦DB人员,所以说,编程人员要全才,除了编程以为的专业知识也要涉猎,比如js,css,html,t-sql

  不知不觉讲到触发器了,一般我们做程序的很少接触到触发器,触发器的操作一般是DB人员来完成。

  然而有的时候一些简单的业务需要我们自己去完成,不能每次都去麻烦DB人员,所以说,编程人员要全才,除了编程以为的专业知识也要涉猎,比如js,css,html,t-sql等一些语法,不一定要去精通,但是要熟悉,至少语法可以看懂,这样对我们的编程有事半功倍的效果,出现异常错误,我们也方便调试,以便最快找出错误。

  言归正传,什么事触发器,顾名思义,就是你做一个操作,就会触发另一个事件,去执行一些操作。

  比如你点烟花,点是一个动作,烟花是另一个动作,点动作完成就会触发烟花这个动作。

  还有就是触发器必须依附一个主体,比如依附于某一张表,就像编程中事件这个概念。

  下面我们通过一个简单的实例,和大家一步一步的来理解和运用触发器。

  实例要求:

    1,建商品表(Store),订单表(orders),日志表(Logs)

    2,创建订单表插入触发器,,实现插入一条订单信息,商品表中商品数量相应减少,订单中的总金额相应增加。

    3,创建订单表更新触发器,实现更新一条订单信息,商品表中商品数量相应变化,订单中的总金额相应变化。(和2类似)

    4,创建日志表触发器,实现更新商品表价格变化情况。

1,创建商品表(Store),订单表(orders),日志表(Logs)

  第一步没什么讲解,我们创建表,并加一些示例数据。

  示例代码:

Store 2 ( , , , 6 ProductCH nvarchar(80) not null, , ); orders 11 ( , , , , ) Logs 19 ( , 21 operatedatetime datetime, 22 ProductID int, 23 oldprice money, 24 newprice money 25 ); dbo.Store ,,50) dbo.Store ,,50) dbo.orders(OrderID,ProductID,BuyNumber,BuyPricr) 32 values(10013,1001,5,6000)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。