Trigger - wyjęcie z bufora

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

varox
Posty: 114
Rejestracja: 10 sie 2022, 14:49
Rola: Administrator CDN XL

Trigger - wyjęcie z bufora

Post autor: varox »

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.

wgromek
Posty: 53
Rejestracja: 04 sty 2014, 23:00
Rola: Administrator CDN XL
Lokalizacja: Lublin

Re: Trigger - wyjęcie z bufora

Post autor: wgromek »

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
:)

g4ce
Posty: 13
Rejestracja: 02 mar 2020, 12:38
Rola: Konsultant CDN XL
Wersja: 2019

Re: Trigger - wyjęcie z bufora

Post autor: g4ce »

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

ODPOWIEDZ