परिदृश्य:
आप SQL सर्वर डेवलपर के रूप में काम कर रहे हैं, आपको प्राथमिक-विदेशी कुंजी संबंध के साथ दो टेबल बनाने की आवश्यकता है। आप संदर्भ तालिका (प्राथमिक कुंजी कॉलम तालिका) से रिकॉर्ड हटा दिए जाने पर सेटिंग के साथ विदेशी कुंजी बाधा बनाना चाहते हैं, इसे मूल तालिका (विदेशी कुंजी बाधा तालिका) से हटाया नहीं जाना चाहिए, इसके बजाय मान को शून्य में अपडेट किया जाना चाहिए।समाधान:
हम उपरोक्त आवश्यकता को लागू करने के लिए विदेशी कुंजी बाधा परिभाषा के साथ ON DELETE SET NULL का उपयोग कर सकते हैं।चलो नीचे दी गई स्क्रिप्ट का उपयोग करके प्रदर्शन करते हैं। ऑर्डर आईडी INT पहचान (1, 1), ऑर्डरइटेमनाम VARCHAR (50), ऑर्डरआइटम एएमटी आईएनटी, ग्राहक_आईडी आईएनटी विदेशी कुंजी संदर्भ ग्राहक (ग्राहक आईडी) हटाएं सेट न्यूल पर) - डीबीओ में नमूना डेटा डालें। ग्राहक (ग्राहक आईडी, एफनाम, एलनाम, एसएसएन ) मान (1,'आमिर', 'शहजाद', '000-000-00') dbo में डालें। ऑर्डर (OrderItemName,OrderItemAmt, Customer_Id) मान ('TV',1,1) क्वेरी का चयन करके तालिकाओं में डेटा की जांच करें
SQL सर्वर में ON DELETE SET NULL के साथ फॉरेन की कंस्ट्रक्शन कैसे बनाएं |
आइए संदर्भित तालिका (प्राथमिक कुंजी स्तंभ तालिका) से पंक्ति को हटा दें और जांचें कि क्या रिकॉर्ड अभी भी मूल तालिका (विदेशी कुंजी बाधा तालिका) में मौजूद हैं और स्तंभ मान को शून्य में अपडेट किया गया है।
-- संदर्भित तालिका से रिकॉर्ड हटाएं (पीके कॉलम टेबल) dbo.Customer से हटाएं जहां CustomerId=1
SQL सर्वर में विदेशी कुंजी बाधा के साथ ON DELETE SET NULL विकल्प का उपयोग कैसे करें |
जैसा कि हम देख सकते हैं कि रिकॉर्ड को संदर्भित तालिका (प्राथमिक कुंजी कॉलम तालिका) से हटा दिया गया है, लेकिन अभी भी मूल तालिका (विदेशी कुंजी बाधा तालिका) में मौजूद है, लेकिन मान को अपेक्षित के रूप में शून्य में अपडेट किया गया है।
वीडियो डेमो :SQL सर्वर में ON DELETE SET NULL विकल्प के साथ विदेशी कुंजी बाधा कैसे बनाएं