触发器

--instead of 触发器演示脚本。

create view ca_view   --创建ca_view视图
as
select au_id,au_lname +'.'+ au_fname as au_name,phone  --注意:au_name 列是计算列,中间有个'.'
from authors
where state= 'ca'

create trigger tri_caview
on ca_view                       --在ca_view视图上建立
instead of update                --instead of 更新触发器
as
declare @name varchar(40),       --声明一系列变量
        @lname varchar(20),
        @fname varchar(20),
        @au_id varchar(20),
        @dot char,
        @n int       
if update(au_name)
  begin
    select @au_id = au_id, @name = au_name from inserted  --赋值语句
    set @dot = '.'                            
    set @n = charindex(@dot,@name)                        --将根据'.'区分lname和fname
    set @lname = left(@name,@n-1)                         --得到lname
    set @fname = right(@name,len(@name) - @n )            --得到fname
    update authors set au_lname = @lname,au_fname = @fname    --更新authors表
      Where au_id = @au_id
  end
go

update ca_view set au_name='HJ.Zhang' where au_id = '123-45-6789'

insert into authors(au_id,au_lname,au_fname,phone,contract,state)
values('123-45-6789','haijian','zhang','410 444-1111',1,'CA')

转载于:https://www.cnblogs.com/gamebaby/archive/2006/11/11/557618.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值