अन्य उदाहरणों को देखकर मैं निम्नलिखित के साथ आया हूं लेकिन ऐसा लगता है कि यह काम नहीं करता है: मैं चाहता हूं कि यह केवल संशोधित जानकारी को अपडेट करे यदि QtyToRepair
मूल्य अद्यतन किया गया है ... लेकिन यह ऐसा नहीं करता है।एसक्यूएल अपडेट केवल तभी ट्रिगर होता है जब कॉलम संशोधित होता है
यदि मैं टिप्पणी करता हूं कि संशोधित जानकारी प्रत्येक मामले में कहां अपडेट की जाती है। जैसा कि मैंने कहा कि अन्य उदाहरणों ने मुझे आशावादी बना दिया। किसी भी सुराग की सराहना की। धन्यवाद।
वाल्टर
ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
ON [dbo].[SCHEDULE]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE SCHEDULE SET modified = GETDATE()
, ModifiedUser = SUSER_NAME()
, ModifiedHost = HOST_NAME()
FROM SCHEDULE S
INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
WHERE S.QtyToRepair <> I.QtyToRepair
END
क्या डीबी प्रयोग कर रहे हैं? –
एसक्यूएल सर्वर की तरह loooks –
'अद्यतन()' के बारे में एक चेतावनी - यह केवल तभी परीक्षण करता है जब कॉलम अद्यतन सूची में दिखाई देता है, और हमेशा आवेषण के लिए सच है। यह जांच नहीं करता है कि कॉलम मान बदल गया है, क्योंकि आपके पास एक से अधिक पंक्ति हो सकती है, जहां कुछ मान बदल गए हैं और कुछ नहीं हैं। –