परिदृश्य:
आप SQL सर्वर डेवलपर के रूप में काम कर रहे हैं, आपको प्राथमिक-विदेशी कुंजी संबंध के साथ दो टेबल बनाने की आवश्यकता है। आप संदर्भ तालिका (प्राथमिक कुंजी कॉलम तालिका) से रिकॉर्ड हटा दिए जाने पर सेटिंग के साथ विदेशी कुंजी बाधा बनाना चाहते हैं, इसे मूल तालिका (विदेशी कुंजी बाधा तालिका) से भी हटा दिया जाना चाहिए।समाधान:
SQL सर्वर हमें विदेशी कुंजी बाधा के साथ सेटिंग का उपयोग करने देता है जिसे ऑन डिलीट कैस्केड कहा जाता है। यदि यह नियम लागू किया जाता है, तो जब भी संदर्भित तालिका (प्राथमिक कुंजी कॉलम तालिका) से रिकॉर्ड हटा दिया जाता है, तो इसे मूल तालिका (विदेशी कुंजी बाधा तालिका) से भी हटा दिया जाएगा।आइए नीचे दी गई स्क्रिप्ट के साथ इस परिदृश्य का परीक्षण करें।
USE YourDatabaseName GO CREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) ) CREATE TABLE dbo.Orders ( OrderId INT Identity(1, 1) ,OrderitemName VARCHAR(50) ,OrderItemAmt INT ,Customer_id INT FOREIGN KEY REFERENCES Customer(CustomerId) ON DELETE CASCADE ) --insert sample data insert into dbo.Customer (CustomerId,FName, LName,SSN) values (1,'Aamir','Shahzad','000-000-00')
चुनिंदा क्वेरी का उपयोग करके तालिकाओं में डेटा की जांच करें।
एसक्यूएल सर्वर में फॉरेन की कंस्ट्रक्शन के साथ ऑन डिलीट कैस्केड रूल को कैसे इनेबल करें |
आइए संदर्भित तालिका (प्राथमिक कुंजी स्तंभ तालिका) से पंक्ति को हटा दें और देखें कि क्या यह मूल तालिका (विदेशी कुंजी बाधा तालिका) से भी हटाई जाती है
--Delete the Record from Referenced Table(PK Column Table) Delete from dbo.Customer where CustomerId=1
यह देखने के लिए तालिकाओं को फिर से जांचें कि क्या विदेशी कुंजी प्रतिबंध पर कैस्केड हटाएं नियम के कारण दोनों तालिकाओं से रिकॉर्ड हटा दिया गया है।
एसक्यूएल सर्वर टेबल में कई टेबल्स से रिकॉर्ड्स को डिलीट करने के लिए ऑन डिलीट कैस्केड का उपयोग कैसे करें |
जैसा कि हम देख सकते हैं कि विदेशी कुंजी प्रतिबंध के ON DELETE CASCADE नियम के कारण दोनों तालिकाओं से रिकॉर्ड हटा दिए गए हैं।
वीडियो डेमो:SQL सर्वर में ON DELETE CASCADE के साथ विदेशी कुंजी बाधा कैसे बनाएं