के साथ फ़ील्ड को अपडेट करने के लिए कैसे मैं उसी तालिका में एक फ़ील्ड अपडेट करना चाहता हूं जिसमें रिकॉर्ड हटाया जा रहा है लेकिन यह भी सुनिश्चित नहीं है कि कैसे। तालिका बहुत सरल है और उस पर एक आत्म संदर्भ है:SQL सर्वर 2008 - DELETE ट्रिगर
UserID FName EmailAddress EmailUserID
1 Frank [email protected] 2
2 Jane [email protected] NULL
3 John [email protected] 1
4 Brett [email protected] 2
यहाँ मेरी ट्रिगर है:
CREATE TRIGGER [dbo].[CAT_DeleteUser]
ON Users
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
UPDATE Users
SET EmailUserID = NULL
WHERE EmailUserID = ID_OF_DELETED_USER <-- don't know how to get this
END
तो अगर मैं जेन (UserID = 2) हटाने के लिए, मैं अद्यतन करने के लिए ट्रिगर करना चाहते हैं ईमेलयूसर आईडी के साथ कोई रिकॉर्ड 2. मैं इसे कैसे पूरा कर सकता हूं?
CREATE TRIGGER [dbo].[CAT_DeleteUser]
ON Users
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
UPDATE Users
SET EmailUserID = NULL
WHERE EmailUserID IN (SELECT UserID FROM DELETED)
END
आप जानते हैं कि यह केवल तभी काम करेगा यदि आपके पास * एक आत्म-संदर्भित विदेशी कुंजी नहीं है, है ना? जिसका अर्थ है कि आप EmailUserID में कोई भी मूल्य डाल सकते हैं और SQL सर्वर शिकायत नहीं करेगा। –