So, I have a trigger on a table in my main ERP system. SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO-- Add the new Trigger for SoMastCREATE TRIGGER SOMODAUDITSTATUS ON M2MData01.dbo.somast AFTER UPDATEASSET NOCOUNT ONDECLARE @PRICE AS MONEYDECLARE @SONO AS CHAR (6)IF EXISTS (SELECT inserted.fstatus, deleted.fstatus FROM inserted INNER JOIN deleted ON inserted.identity_column = deleted.identity_column WHERE inserted.fstatus = 'Open' AND deleted.fstatus <> 'Open') -- Order moves TO open. Add $$ BEGIN INSERT CHELTONCUSTOMIZATIONS.DBO.SOMODS (FENUMBER, FSONO, FRELEASE, FDATECHANGED, [fstatusOLD], [fstatusNEW], FORDERQTYOLD, FORDERQTYNEW, FUNETPRICEOLD, FUNETPRICENEW, PRICEMOD, MODTYPE, FKSorelsID, fProdCl, fPartno, fGroup) SELECT dbo.sorels.FENUMBER, dbo.sorels.FSONO, dbo.sorels.FRELEASE, GETDATE (), deleted.fstatus, inserted.fstatus, dbo.sorels.forderqty, dbo.sorels.FORDERQTY, dbo.sorels.FUNETPRICE, dbo.sorels.FUNETPRICE, ( (SORELS.forderqty - SORELS.finvqty - (CASE WHEN ( (SORELS.fshipbook + SORELS.fshipbuy + sorels.fshipmake) - sorels.finvqty) <= 0 OR COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (sorels.fsono + sorels.finumber + sorels.frelease), 0 ) <= 0 THEN 0 WHEN (SORELS.fshipbook + SORELS.fshipbuy + sorels.fshipmake) - sorels.finvqty < COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY(sorels.fsono + sorels.finumber + sorels.frelease), 0 ) THEN (SORELS.fshipbook + SORELS.fshipbuy + sorels.fshipmake - sorels.finvqty) ELSE COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (sorels.fsono + sorels.finumber + sorels.frelease), 0 ) END)) * SORELS.funetprice), (CASE WHEN inserted.fstatus = 'Open' AND deleted.fstatus = 'Started' THEN 'N' ELSE 'C' END), dbo.sorels.identity_column, dbo.soitem.fprodcl, dbo.soitem.fpartno, dbo.soitem.fgroup FROM dbo.sorels INNER JOIN DBO.somast ON DBO.somast.fsono = dbo.sorels.fsono INNER JOIN dbo.soitem ON dbo.soitem.fsono = dbo.sorels.fsono AND dbo.soitem.finumber = dbo.sorels.finumber INNER JOIN INSERTED ON DBO.Somast.identity_column = INSERTED.IDENTITY_COLUMN INNER JOIN deleted ON INSERTED.IDENTITY_COLUMN = deleted.IDENTITY_COLUMN RETURN ENDIF EXISTS (SELECT inserted.fstatus, deleted.fstatus FROM inserted INNER JOIN deleted ON inserted.identity_column = deleted.identity_column WHERE DELETED.fstatus = 'Open' AND INSERTED.fstatus <> 'Open') -- Order moves FROM open. Subtract $$ BEGIN INSERT CHELTONCUSTOMIZATIONS.DBO.SOMODS (FENUMBER, FSONO, FRELEASE, FDATECHANGED, [fstatusOLD], [fstatusNEW], FORDERQTYOLD, FORDERQTYNEW, FUNETPRICEOLD, FUNETPRICENEW, PRICEMOD, MODTYPE, FKSorelsID, fProdCl, fPartno, fGroup) SELECT dbo.sorels.FENUMBER, dbo.sorels.FSONO, dbo.sorels.FRELEASE, GETDATE (), deleted.fstatus, inserted.fstatus, dbo.sorels.FORDERQTY, dbo.sorels.FORDERQTY, dbo.sorels.FUNETPRICE, dbo.sorels.FUNETPRICE, ( (SORELS.forderqty - SORELS.finvqty - (CASE WHEN ( (SORELS.fshipbook + SORELS.fshipbuy + sorels.fshipmake) - sorels.finvqty) <= 0 OR COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (sorels.fsono + sorels.finumber + sorels.frelease), 0 ) <= 0 THEN 0 WHEN (SORELS.fshipbook + SORELS.fshipbuy + sorels.fshipmake) - sorels.finvqty < COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY(sorels.fsono + sorels.finumber + sorels.frelease), 0 ) THEN (SORELS.fshipbook + SORELS.fshipbuy + sorels.fshipmake - sorels.finvqty) ELSE COALESCE (DBO.GETSHIPPEDNOTINVOICEDQTY (sorels.fsono + sorels.finumber + sorels.frelease), 0 ) END)) * SORELS.funetprice * -1), 'C', dbo.sorels.identity_column, dbo.soitem.fprodcl, dbo.soitem.fpartno, dbo.soitem.fgroup FROM dbo.sorels INNER JOIN DBO.somast ON DBO.somast.fsono = dbo.sorels.fsono INNER JOIN dbo.soitem ON dbo.soitem.fsono = dbo.sorels.fsono AND dbo.soitem.finumber = dbo.sorels.finumber INNER JOIN INSERTED ON DBO.Somast.identity_column = INSERTED.IDENTITY_COLUMN INNER JOIN deleted ON INSERTED.IDENTITY_COLUMN = deleted.IDENTITY_COLUMN RETURN ENDSET @SONO = (SELECT TOP 1 (FSONO) FROM INSERTED)IF EXISTS (SELECT somast.fsono FROM SOMAST WHERE SOMAST.fusercode = 'Repair' AND FSONO = @SONO) BEGIN UPDATE CHELTONCUSTOMIZATIONS.DBO.SOMODS SET ModType = 'R' WHERE fsono = @SONO ENDGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO
I have another server which I use for testing and development. I commonly use the production backups to refresh my databases on my test server. Today I went to test something on my test box and I noticed that my triggers were not righting to the corresponding on my test server, but rather to the table on my live server. This was of course a revelation. Can someone suggest how I managed to committ this blunder?