Witam,
w jaki sposób zdefiniować w triggerze moment wyciągnięcia dokumentu z bufora. Mam na myśli, żeby trigger odpalał się tylko w momencie wyciągnięcia dokumentu z bufora a nie przy jakiejkolwiek aktualizacji na dokumencie.
Trigger - wyjęcie z bufora
Moderator: mikey
Re: Trigger - wyjęcie z bufora
if UPDATE(trn_stan)
if exist (select null from inserted i inner join deleted d on i.trn_gidnumer = d.trn_gidnumer where i.trn_stan >2 and d.trn.stan<3)
BEGIN
---cośtam
END
if exist (select null from inserted i inner join deleted d on i.trn_gidnumer = d.trn_gidnumer where i.trn_stan >2 and d.trn.stan<3)
BEGIN
---cośtam
END
Re: Trigger - wyjęcie z bufora
Spróbuj coś na wzór;)
ON [CDN].[TraNag]
after insert, update
AS
BEGIN
SET NOCOUNT ON;
declare @SPrzed int
declare @SPo int
declare @opeM int
declare @Mag int
declare @DTyp int
declare @OpeZ int
select @Sprzed=trn_stan from deleted
select @SPo=trn_stan, @opeM=trn_openumerr, @Mag=trn_MagDNumer, @DTyp=trn_GidTyp, @OpeZ=trn_openumerr from inserted join cdn.OpeKarty on TRN_OpeNumerR=Ope_GIDNumer and TRN_OpeTypM=Ope_GIDTyp
if (@DTyp in (1616,1617))
begin
if ((@SPrzed in (0,1,2)) and (@SPo in (3,4,5)))
begin
if (@Mag in (9))
begin
if (@opeM not in (select Atr_Obinumer from cdn.Atrybuty where Atr_AtkId = 88))
begin
RAISERROR('#CDN_BLAD/# #CDN_1=Brak praw do zatwierdzenia dokumentu magazynowego!/# #CDN_2=Nie masz praw do tego magazynu/# #CDN_3=Zmien magazyn lub popros o zatwierdzenie dokumentu osobe z uprawnieniami/#', 16, 1)
ROLLBACK TRAN
SET NOCOUNT ON
RETURN
end
end
END
END
END
ON [CDN].[TraNag]
after insert, update
AS
BEGIN
SET NOCOUNT ON;
declare @SPrzed int
declare @SPo int
declare @opeM int
declare @Mag int
declare @DTyp int
declare @OpeZ int
select @Sprzed=trn_stan from deleted
select @SPo=trn_stan, @opeM=trn_openumerr, @Mag=trn_MagDNumer, @DTyp=trn_GidTyp, @OpeZ=trn_openumerr from inserted join cdn.OpeKarty on TRN_OpeNumerR=Ope_GIDNumer and TRN_OpeTypM=Ope_GIDTyp
if (@DTyp in (1616,1617))
begin
if ((@SPrzed in (0,1,2)) and (@SPo in (3,4,5)))
begin
if (@Mag in (9))
begin
if (@opeM not in (select Atr_Obinumer from cdn.Atrybuty where Atr_AtkId = 88))
begin
RAISERROR('#CDN_BLAD/# #CDN_1=Brak praw do zatwierdzenia dokumentu magazynowego!/# #CDN_2=Nie masz praw do tego magazynu/# #CDN_3=Zmien magazyn lub popros o zatwierdzenie dokumentu osobe z uprawnieniami/#', 16, 1)
ROLLBACK TRAN
SET NOCOUNT ON
RETURN
end
end
END
END
END