IF UPDATE(cLagerKleinerNull)
BEGIN
DECLARE @StuecklistenMitLager TABLE (kVaterArtikel_Stueckliste INT, kStueckliste_Stueckliste INT);
IF (EXISTS(SELECT 1 FROM INSERTED LEFT JOIN DELETED ON DELETED.kArtikel = INSERTED.kArtikel WHERE INSERTED.cLagerKleinerNull = 'N' AND DELETED.cLagerKleinerNull = 'Y'))
BEGIN
SET CONTEXT_INFO 0x696969; -- Diesen Trigger nicht mehr aufrufen aus folgendem Code
INSERT INTO @StuecklistenMitLager(kVaterArtikel_Stueckliste, kStueckliste_Stueckliste)
SELECT DISTINCT tStueckliste.kVaterArtikel, tStueckliste.kStueckliste
FROM #ModifiedItems
JOIN dbo.tStueckliste ON tStueckliste.kArtikel = #ModifiedItems.kArtikel
UPDATE dbo.tArtikel
SET tArtikel.cLagerKleinerNull = 'N'
WHERE tArtikel.cLagerKleinerNull='Y' and tArtikel.cAktiv='Y'
AND tArtikel.kStueckliste IN
(SELECT kStueckliste_Stueckliste FROM @StuecklistenMitLager)
SET CONTEXT_INFO @OldContextInfo;
END
IF (EXISTS(SELECT 1 FROM INSERTED LEFT JOIN DELETED ON DELETED.kArtikel = INSERTED.kArtikel WHERE INSERTED.cLagerKleinerNull = 'Y' AND DELETED.cLagerKleinerNull = 'N'))
BEGIN
SET CONTEXT_INFO 0x696969; -- Diesen Trigger nicht mehr aufrufen aus folgendem Code
INSERT INTO @StuecklistenMitLager(kVaterArtikel_Stueckliste, kStueckliste_Stueckliste)
SELECT ts2.kVaterArtikel, ts2.kStueckliste
FROM dbo.tStueckliste ts2
JOIN(
SELECT DISTINCT tStueckliste.kVaterArtikel, tStueckliste.kStueckliste
FROM #ModifiedItems
JOIN dbo.tStueckliste ON (tStueckliste.kArtikel = #ModifiedItems.kArtikel)
) ts1 ON ts1.kStueckliste=ts2.kStueckliste
OUTER APPLY (SELECT CASE WHEN cLagerKleinerNull='Y' THEN 1 ELSE 0 END AS nLagNull FROM eazybusiness.dbo.tArtikel ta WITH (NOLOCK) WHERE ta.kArtikel=ts2.kArtikel) mx
GROUP BY ts2.kStueckliste, ts2.kVaterArtikel
HAVING COUNT(*) = SUM(mx.nLagNull)
UPDATE dbo.tArtikel
SET tArtikel.cLagerKleinerNull = 'Y'
WHERE tArtikel.cLagerKleinerNull='N' and tArtikel.cAktiv='Y'
AND tArtikel.kStueckliste IN
(SELECT kStueckliste_Stueckliste FROM @StuecklistenMitLager)
SET CONTEXT_INFO @OldContextInfo;
END
END