首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教一个触发器的有关问题

2012-01-28 
请问一个触发器的问题我写了一个触发器如下,是当resume表的jlztlike1111%时,更新其它字段一下,其它情况更

请问一个触发器的问题
我写了一个触发器如下,是当resume表的jlzt   like   1111%时,更新其它字段一下,
其它情况更新情况不同,但是检查语法没错误,但是运行时却有问题,帮我看看.

CREATE   TRIGGER   [upjlzttojl]   ON   [dbo].[Resume]  
FOR     UPDATE  
AS
begin
      if   update(jlzt)
      begin
            declare   @jlzt   varchar(15)
            select   @jlzt=jlzt   from   updated
            if   @jlzt   like   '1111111111% '
update   resume   set   zjl=3   from   updated   where   reid=updated.reid
            else   if   @jlzt   like   '1111% '
update   resume   set   zjl=2   from   updated   where   reid=updated.reid
            else   if   @jlzt   like   '0000000000% '
update   resume   set   zjl=0   from   updated   where   reid=updated.reid
            else
update   resume   set   zjl=1   from   updated   where   reid=updated.reid
      end
      if   update(ejlzt)
      begin
            declare   @ejlzt   varchar(15)
            select   @ejlzt=ejlzt   from   updated
            if   @ejlzt   like   '1111111111% '
update   resume   set   ejl=3   from   updated   where   reid=updated.reid
            else   if   @ejlzt   like   '1111% '
update   resume   set   ejl=2   from   updated   where   reid=updated.reid
            else   if   @ejlzt   like   '0000000000% '
update   resume   set   ejl=0   from   updated   where   reid=updated.reid
            else
update   resume   set   ejl=1   from   updated   where   reid=updated.reid
      end
end

[解决办法]
begin
declare @jlzt varchar(15)
set @jlzt=jlzt
select @jlzt from updated
if @jlzt like '1111111111% '
[解决办法]
CREATE TRIGGER [upjlzttojl] ON [dbo].[Resume]
FOR UPDATE
AS
begin
if update(jlzt)

begin
declare @jlzt varchar(15)

if (select count(1) from updated where jlzt like '1111111111% ') > 0
update resume set zjl=3 from updated where reid=updated.reid
else if (select count(1) from updated where jlzt like '1111% ') > 0
update resume set zjl=2 from updated where reid=updated.reid
else if (select count(1) from updated where jlzt like '0000000000% ') > 0
update resume set zjl=0 from updated where reid=updated.reid
else
update resume set zjl=1 from updated where reid=updated.reid
end
if update(ejlzt)
begin
declare @ejlzt varchar(15)
select @ejlzt=ejlzt from updated where ejlzt like '1111111111% '
if (select count(1) from updated where ejlzt like '1111111111% ') > 0


update resume set ejl=3 from updated where reid=updated.reid
else if (select count(1) from updated where ejlzt like '1111% ') > 0
update resume set ejl=2 from updated where reid=updated.reid
else if (select count(1) from updated where ejlzt like '0000000000% ') > 0
update resume set ejl=0 from updated where reid=updated.reid
else
update resume set ejl=1 from updated where reid=updated.reid
end
end

[解决办法]
begin
declare @jlzt varchar(15)
set @jlzt=jlzt
declare @str nvarchar(1000)
set @str= 'select '+@jlzt+ ' from updated '
exec(@str)
if @jlzt like '1111111111% '
[解决办法]
CREATE TRIGGER [upjlzttojl] ON [dbo].[Resume]
FOR UPDATE
AS
begin
if update(jlzt)
begin
if (select count(1) from inserted where jlzt like '1111111111% ') > 0
update resume set zjl=3 from inserted where reid=inserted.reid
else if (select count(1) from inserted where jlzt like '1111% ') > 0
update resume set zjl=2 from inserted where reid=inserted.reid
else if (select count(1) from inserted where jlzt like '0000000000% ') > 0
update resume set zjl=0 from inserted where reid=inserted.reid
else
update resume set zjl=1 from inserted where reid=inserted.reid
end
if update(ejlzt)
begin
if (select count(1) from inserted where ejlzt like '1111111111% ') > 0
update resume set ejl=3 from inserted where reid=inserted.reid
else if (select count(1) from inserted where ejlzt like '1111% ') > 0
update resume set ejl=2 from inserted where reid=inserted.reid
else if (select count(1) from inserted where ejlzt like '0000000000% ') > 0
update resume set ejl=0 from inserted where reid=inserted.reid
else
update resume set ejl=1 from inserted where reid=inserted.reid
end
end
[解决办法]
leo_lesley(leo) ( ) 信誉:100 Blog 2007-1-4 16:14:32 得分: 0



刚看到 哪有updated这个表啊 只有inserted和deleted啊


热点排行