Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

विदेशी कुंजी बाधा चक्र या एकाधिक कैस्केड पथ का कारण बन सकती है?

SQL सर्वर कैस्केड पथों की सरल गणना करता है और, यह पता लगाने की कोशिश करने के बजाय कि क्या कोई चक्र वास्तव में मौजूद है, यह सबसे खराब मानता है और रेफ़रेंशियल एक्शन (CASCADE) बनाने से इनकार करता है:आप रेफ़रेंशियल क्रियाओं के बिना बाधाओं को बना सकते हैं और अभी भी बनाना चाहिए। यदि आप अपना डिज़ाइन नहीं बदल सकते हैं (या ऐसा करने से चीज़ों से समझौता हो जाएगा) तो आपको अंतिम उपाय के रूप में ट्रिगर्स का उपयोग करने पर विचार करना चाहिए।

FWIW कैस्केड पथों को हल करना एक जटिल समस्या है। अन्य एसक्यूएल उत्पाद केवल समस्या को अनदेखा करेंगे और आपको चक्र बनाने की अनुमति देंगे, इस मामले में यह देखने की दौड़ होगी कि कौन सा मूल्य आखिरी बार ओवरराइट करेगा, शायद डिजाइनर की अज्ञानता के लिए (उदाहरण के लिए एसीई/जेट ऐसा करता है)। मैं समझता हूं कि कुछ SQL उत्पाद साधारण मामलों को हल करने का प्रयास करेंगे। तथ्य बनी हुई है, SQL सर्वर कोशिश भी नहीं करता है, एक से अधिक पथों को अस्वीकार करके इसे अल्ट्रा सेफ खेलता है और कम से कम यह आपको ऐसा बताता है।

Microsoft स्वयं FK बाधाओं के बजाय ट्रिगर्स के उपयोग की सलाह देता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पेश है प्लेबैक—स्पॉटलाइट क्लाउड के लिए टाइम डायग्नोसिस में नया बिंदु

  2. Azure डेटा स्टूडियो का उपयोग करके मैक पर SQL सर्वर डेटाबेस को कैसे पुनर्स्थापित करें

  3. मैं SQL सर्वर में एक विदेशी कुंजी कैसे बनाऊं?

  4. एक साल में हर महीने के रिकॉर्ड गिनें

  5. SQL सर्वर 2005 में तालिका दिलचस्प व्यवहार से तालिका बनाम चयन colA, colB, आदि से * चुनें