मेरे पास दो टेबल, Table_A और Table_B हैं। Table_A में Table_B के साथ एक से अधिक संबंध हैं।SQL सर्वर 2008 में किसी अन्य तालिका में किसी मान के आधार पर वर्तमान तालिका को अद्यतन करने के लिए मैं अद्यतन ट्रिगर कैसे लिख सकता हूं?
बच्चे तालिका (तालिका_B) में एक रिकॉर्ड डालने के बाद मैं मूल तालिका (तालिका_ए) में किसी फ़ील्ड से मूल्य प्राप्त करने के लिए एक ट्रिगर का उपयोग करना चाहता हूं और वर्तमान में तालिका_B में सम्मिलित रिकॉर्ड अपडेट करना चाहता हूं।
Table_A
PK|EmpID|MemID|Firstname|Lastname
----------------------------------
1 |1234 |AB123|John | Doe
2 |5678 |CD456|Jane | Smith
Table_B
PK|EmpID|MemID|Description
---------------------
1 |1234 |NULL |Finance
2 |1234 |NULL |IT
3 |5678 |NULL |Finance
4 |5678 |NULL |Management
ट्रिगर Table_A से MemID मूल्य पकड़ें और उसे Table_B जहां [Table_A]। [EmpID] = [में संबंधित मान है अद्यतन करना चाहिए Table_B]। [EmpID]।
PK|EmpID|MemID|Description
---------------------
1 |1234 |AB123|Finance
2 |1234 |AB123|IT
3 |5678 |CD456|Finance
4 |5678 |CD456|Management
मैं बड़े पैमाने पर अन्य तकनीकी साइटों खोज की, लेकिन इस विशेष परिदृश्य के साथ एक को खोजने के लिए प्रतीत नहीं कर सकते हैं: इस प्रकार बेशक Table_B में 4 आवेषण के बाद परिणाम होना चाहिए। एक बेताब कदम के रूप में मैंने इस साइट में पंजीकरण किया है और यह मदद के लिए मेरी पहली पोस्ट होगी।
एमएस एसक्यूएल सर्वर 2008 आर 2 में अपना पहला ट्रिगर बनाने की कोशिश में मेरा व्यर्थ प्रयास निम्नलिखित है।
CREATE TRIGGER dbo.trgInsMemID
ON dbo.Table_B
AFTER INSERT
AS
BEGIN
UPDATE dbo.Table_B
SET MemID =
(SELECT MemID
FROM inserted i
JOIN dbo.Table_A c ON c.EmpID = i.EmpID)
FROM dbo.Table_B b
JOIN inserted i ON i.MemID = b.MemID
END
स्टैक ओवरव्लो में आपका स्वागत है। तालिका संरचनाओं, डेटा, अपेक्षित परिणाम, और आपके प्रयास को अब तक पोस्ट करने के लिए धन्यवाद। यह प्रयास दिखाता है, और समुदाय के लिए आपकी सहायता करने के लिए यह बहुत आसान बनाता है। +1 –