CREATE TRIGGER 名1 ON a
FOR INSERT
AS
update b set 投料次数=投料次数+1,投料量合计=tem.投料量 from inserted tem where tem.日期=b.日期
insert b (日期,投料次数,投料量合计) select 日期,1,投料量 from inserted where 日期 not in (select 日期 from b where 日期 is not null)
go
CREATE TRIGGER 名1 ON a
FOR INSERT
AS
update b set 投料次数=投料次数+1,投料量合计=tem.投料量 from inserted tem where tem.日期=b.日期
insert b (日期,投料次数,投料量合计) select 日期,1,投料量 from inserted where 日期 not in (select 日期 from b where 日期 is not null)
go
B表的问题已经解决了。
现在有C表:日期 班号 投料次数 投料量合计,
需要根据A表中的日期和班号来更新C表中的次数和合计。我用 pengdali(大力 V2.0)的语句update可以,insert不行,我想是条件不对
if(select 班号 from inserted)='白班'
update......
insert C (日期,班号,投料次数,投料量合计) select 日期,'白班',1,投料量 from inserted where 日期 not in (select 日期 from b) and 班号 not in (select 班号 from C)
if(select 班号 from inserted)='中班'
update......
insert C (日期,班号,投料次数,投料量合计) select 日期,'中班',1,投料量 from inserted where 日期 not in (select 日期 from b) and 班号 not in (select 班号 from C)
FOR INSERT
AS
update b set 投料次数=投料次数+1,投料量合计=tem.投料量 from inserted tem where tem.日期=b.日期 and tem.班号=b.班号
insert b (日期,班号,投料次数,投料量合计) select 日期,班号,1,投料量 from inserted where 日期 not in (select 日期 from b where 日期 is not null)
go
create Trigger T_AddTableB on TableA for Insert
as
if (select convert(varchar max(日期),120) from B)=convert(varchar,getdate(),120)
begin
Update TableB set ...
...
end
else
begin
insert TableB select ....
..
end
create trigger on A for insert
as
begin
declare @Count int,@Sum int
if exists(select * from b where datediff(D,日期,getdate())=0)
begin
select @Count=投料次数,@Sum=投料量合计 from B
where datediff(D,日期,getdate())=0
update B set 投料次数=@count+1,投料量合计=@Sum+(select 投料量 from inserted)
where datediff(D,日期,getdate())=0
end else
begin
insert into B(日期,投料次数,投料量合计) select 日期,1,投料量 from inserted
end
end
CREATE TRIGGER 名1 ON a
FOR INSERT
AS
update b set 投料次数=投料次数+1,投料量合计=tem.投料量 from inserted tem where tem.日期=b.日期
insert b (日期,投料次数,投料量合计) select 日期,1,投料量 from inserted where 日期 not in (select 日期 from b)
go
CREATE TRIGGER [TRIGGER NAME] ON [dbo].[A]
FOR INSERT, UPDATE
AS
.
.
.
DECLARE @intFlag varchar(1)
SET @intFlag='0'
SELECT @intFlag='1' FROM B WHERE convert(varchar(10),isnull(日期,'1900-01-01'),120)=convert(char(10),getdate(),120)
if @intFlag='1'
begin
update ...
...
end
else
begin
....Insert...
end