CREATE TRIGGER [inter] ON [dbo].[attn_rec]
FOR INSERT
AS
declare @a varchar(20),@ttt datetime,@tt int,
@b varchar(10),@c varchar(50),@d varchar(50),
@t1 varchar(20),@t2 varchar(20),@t3 varchar(20),@t4 varchar(20),
@f1 varchar(20),@f2 varchar(20),@f3 varchar(20),@f4 varchar(20),
@g1 varchar(20),@g2 varchar(20),@g3 varchar(20),@g4 varchar(20)set @tt=round(rand()*15,0)
select @a=(select ftycard from inserted) --这里有数据
select @d=(select fre from inserted) --这里是ASDF
select @f1=(select in1 from inserted) --这里有时间
select @f2=(select out1 from inserted) --同上
select @f3=(select in2 from inserted) --同上
select @f4=(select out2 from inserted) --同上
select @ttt=(select attn_date from inserted) --同上
select @b=(select left(convert(varchar,attn_date,120),4)+right( left(convert(varchar,attn_date,120),7),2) from inserted) --转换成yyyymm的字符
select @c=(select 'day'+ convert(varchar,month(@ttt)) from sta_shi_f where ftycard=@a and ym=@b) --转换成day加日期的字符
select @t1=time_in1,@t2=time_out1,@t3=time_in2,@t4=time_out2 from shift_f where shift_code=@c --取得数值
if @D='ASDF' --( right(left(@a,5),3)='000' or @d='休息日' or @d like '%節%' or @d ='放假')
begin
insert into abc(ftycard,fname,attn_date,[week],cp,fact_code,dept,class_name,positn,salary_type,fin1,fout1,fin2,fout2,fre)
select ftycard,fname,attn_date,[week],cp,fact_code,dept,class_name,positn,salary_type,in1,out1,in2,out2,fre
from attn_rec
where ftycard=@a and attn_date=@ttt
return
end
为什么没有数据插如ABC的,我已经故意让@D='ASDF'了,困扰了一天有多
FOR INSERT
AS
declare @a varchar(20),@ttt datetime,@tt int,
@b varchar(10),@c varchar(50),@d varchar(50),
@t1 varchar(20),@t2 varchar(20),@t3 varchar(20),@t4 varchar(20),
@f1 varchar(20),@f2 varchar(20),@f3 varchar(20),@f4 varchar(20),
@g1 varchar(20),@g2 varchar(20),@g3 varchar(20),@g4 varchar(20)set @tt=round(rand()*15,0)
select @a=(select ftycard from inserted) --这里有数据
select @d=(select fre from inserted) --这里是ASDF
select @f1=(select in1 from inserted) --这里有时间
select @f2=(select out1 from inserted) --同上
select @f3=(select in2 from inserted) --同上
select @f4=(select out2 from inserted) --同上
select @ttt=(select attn_date from inserted) --同上
select @b=(select left(convert(varchar,attn_date,120),4)+right( left(convert(varchar,attn_date,120),7),2) from inserted) --转换成yyyymm的字符
select @c=(select 'day'+ convert(varchar,month(@ttt)) from sta_shi_f where ftycard=@a and ym=@b) --转换成day加日期的字符
select @t1=time_in1,@t2=time_out1,@t3=time_in2,@t4=time_out2 from shift_f where shift_code=@c --取得数值
if @D='ASDF' --( right(left(@a,5),3)='000' or @d='休息日' or @d like '%節%' or @d ='放假')
begin
insert into abc(ftycard,fname,attn_date,[week],cp,fact_code,dept,class_name,positn,salary_type,fin1,fout1,fin2,fout2,fre)
select ftycard,fname,attn_date,[week],cp,fact_code,dept,class_name,positn,salary_type,in1,out1,in2,out2,fre
from attn_rec
where ftycard=@a and attn_date=@ttt
return
end
为什么没有数据插如ABC的,我已经故意让@D='ASDF'了,困扰了一天有多
改为if exists(select * from inserted where fre=@D and @D='ASDF')试试