The table that this information is written to is: /****** Object: Table [dbo].[soMods] Script Date: 9/29/2008 3:26:00 PM ******/CREATE TABLE [dbo].[soMods] ([fenumber] char(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[fsono] char(6) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[frelease] char(3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[DateChanged] datetime NOT NULL,[TriggerTable] char(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,[QuantityChanged] int NULL,[PriceMod] numeric(17, 5) NOT NULL,[ModType] char(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,[fProdCl] char(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,[fPartno] char(25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,[fGroup] char(6) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,[FKSorelsID] int NOT NULL,[identity_column] int IDENTITY(1, 1) NOT NULL)ON [PRIMARY];GO/****** Object: Index [dbo].[FKSorelsID_ind] Script Date: 9/29/2008 3:26:00 PM ******/CREATE NONCLUSTERED INDEX [FKSorelsID_ind]ON [dbo].[soMods]([FKSorelsID])WITHFILLFACTOR = 100ON [PRIMARY];GO
Here comes the trigger: CREATE TRIGGER SOMODAUDIT ON M2MData01.dbo.sorels AFTER UPDATE, INSERT, DELETEASSET NOCOUNT ONDECLARE @Repair AS CHAR (10)IF EXISTS (SELECT dbo.somast.fsono FROM dbo.somast WHERE somast.fstatus = 'Open' AND dbo.somast.fsono IN (SELECT COALESCE (inserted.fsono, deleted.fsono) FROM inserted FULL OUTER JOIN deleted ON inserted.identity_column = deleted.identity_column)) BEGIN IF EXISTS (SELECT * FROM inserted) AND EXISTS (SELECT * FROM deleted) -- Update BEGIN INSERT CHELTONCUSTOMIZATIONS.DBO.SOMODS (fenumber, fsono, frelease, DateChanged, TriggerTable, QuantityChanged, PriceMod, ModType, fProdCl, fPartno, fGroup, FKSorelsID) SELECT I.FENUMBER, I.FSONO, I.FRELEASE, GETDATE (), 'SORELS', (I.forderqty - D.forderqty), ( ( (I.forderqty - I.finvqty - (CASE WHEN ( (I.fshipbook + I.fshipbuy + I.fshipmake) - I.finvqty) <= 0 OR COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (I.fsono + I.finumber + I.frelease), 0 ) <= 0 THEN 0 WHEN (I.fshipbook + I.fshipbuy + I.fshipmake) - I.finvqty < COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY(I.fsono + I.finumber + I.frelease), 0 ) THEN (I.fshipbook + I.fshipbuy + I.fshipmake - I.finvqty) ELSE COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (I.fsono + I.finumber + I.frelease), 0 ) END)) * I.funetprice) - ( (D.forderqty - D.finvqty - (CASE WHEN ( (D.fshipbook + D.fshipbuy + D.fshipmake) - D.finvqty) <= 0 OR COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (D.fsono + D.finumber + D.frelease), 0 ) <= 0 THEN 0 WHEN (D.fshipbook + D.fshipbuy + D.fshipmake) - D.finvqty < COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY(D.fsono + D.finumber + D.frelease), 0 ) THEN (D.fshipbook + D.fshipbuy + D.fshipmake - D.finvqty) ELSE COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (D.fsono + D.finumber + D.frelease), 0 ) END)) * D.funetprice)), CASE WHEN EXISTS (SELECT dbo.somast.fsono FROM dbo.somast WHERE somast.fusercode = 'Repair' AND dbo.somast.fsono IN (SELECT COALESCE (inserted.fsono, deleted.fsono ) FROM inserted FULL OUTER JOIN deleted ON inserted.identity_column = deleted.identity_column)) THEN 'R' ELSE 'C' END, SOI.fprodcl, SOI.fPartno, SOI.fGroup, I.identity_column FROM INSERTED I INNER JOIN DELETED D ON I.IDENTITY_COLUMN = D.IDENTITY_COLUMN INNER JOIN [M2MData01].[dbo].SOITEM SOI ON I.FINUMBER = SOI.FINUMBER AND I.FSONO = SOI.FSONO WHERE I.FUNETPRICE <> D.FUNETPRICE OR I.FORDERQTY <> D.FORDERQTY RETURN END IF NOT EXISTS (SELECT * FROM inserted) AND EXISTS (SELECT * FROM deleted) -- Delete BEGIN INSERT CHELTONCUSTOMIZATIONS.DBO.SOMODS (fenumber, fsono, frelease, DateChanged, TriggerTable, QuantityChanged, PriceMod, ModType, fProdCl, fPartno, fGroup, FKSorelsID) SELECT D.FENUMBER, D.FSONO, D.FRELEASE, GETDATE (), 'SORELS', (0 - D.forderqty), (0 - D.FNETPRICE) AS PRICEMOD, CASE WHEN EXISTS (SELECT dbo.somast.fsono FROM dbo.somast WHERE somast.fusercode = 'Repair' AND dbo.somast.fsono IN (SELECT COALESCE (inserted.fsono, deleted.fsono ) FROM inserted FULL OUTER JOIN deleted ON inserted.identity_column = deleted.identity_column)) THEN 'R' ELSE 'D' END, SOI.fProdcl, SOI.fPartno, SOI.fGroup, D.IDENTITY_column FROM DELETED D INNER JOIN [M2MData01].[dbo].SOITEM SOI ON D.FINUMBER = SOI.FINUMBER AND D.FSONO = SOI.FSONO RETURN END IF EXISTS (SELECT * FROM inserted) AND NOT EXISTS (SELECT * FROM deleted) -- Insert BEGIN INSERT CHELTONCUSTOMIZATIONS.DBO.SOMODS (fenumber, fsono, frelease, DateChanged, TriggerTable, QuantityChanged, PriceMod, ModType, fProdCl, fPartno, fGroup, FKSorelsID) SELECT I.FENUMBER, I.FSONO, I.FRELEASE, GETDATE (), 'SORELS', I.FORDERQTY, I.FNETPRICE, CASE WHEN EXISTS (SELECT dbo.somast.fsono FROM dbo.somast WHERE somast.fusercode = 'Repair' AND dbo.somast.fsono IN (SELECT COALESCE (inserted.fsono, deleted.fsono ) FROM inserted FULL OUTER JOIN deleted ON inserted.identity_column = deleted.identity_column)) THEN 'R' ELSE 'N' END, 'xx', 'xx', 'xx', I.identity_column FROM INSERTED I RETURN END ENDGO
The updates work, deletes work, inserts (highlighted) don't.I've been messing around and trying to figure out what's wrong for about 2 hours. The error thrown in SQL Profiler is Error: 207, Severity: 16, State: 1Can anyone help me?