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

SQL सर्वर में विदेशी कुंजी बाधा के साथ तालिका कैसे बनाएं - SQL सर्वर / TSQL ट्यूटोरियल भाग 66

SQL सर्वर तालिका में विदेशी कुंजी क्या है:

तालिका में विदेशी कुंजी एक स्तंभ या स्तंभों का समूह है जो दो तालिकाओं में डेटा के बीच एक लिंक प्रदान करता है। तालिका में विदेशी कुंजी किसी अन्य तालिका में प्राथमिक कुंजी की ओर इशारा करती है।
चलो डीबीओ बनाते हैं। नीचे डीडीएल स्टेटमेंट का उपयोग करके प्राथमिक कुंजी के साथ ग्राहक तालिका बनाएं
अपने डेटाबेस नाम का उपयोग करेंगोक्रिएट टेबल डीबीओ। ग्राहक ( Customerid INT PRIMARY कुंजी, FName VARCHAR(100),LName VARCHAR(100),SSN VARCHAR(10))
 जैसा कि आप देख सकते हैं कि Customerid dbo में प्राथमिक कुंजी है। />
टेबल डीबीओ बनाएं। ऑर्डर (ऑर्डर आईडी आईएनटी पहचान (1, 1), ऑर्डरिटेमनाम VARCHAR (50), ऑर्डरआइटम एएमटी आईएनटी, ग्राहक_आईडी आईएनटी विदेशी कुंजी संदर्भ ग्राहक (ग्राहक आईडी))
 
 
 आप देख सकते हैं कि हमने dbo में Customer_id कॉलम जोड़ा है। ऑर्डर तालिका जो dbo.Customer तालिका में Customerid का संदर्भ देती है।
पहली तालिका में प्राथमिक कुंजी Customerid है और दूसरी तालिका में विदेशी कुंजी कॉलम Customer_id है, जिसका अर्थ है कि कॉलम जरूरी नहीं कि समान नाम हों। एक ही नाम रखना अच्छा है, इसलिए जब आप प्रश्न लिखते हैं और तालिकाओं में शामिल होते हैं, तो आपको यह देखने की ज़रूरत नहीं है कि कौन सी प्राथमिक कुंजी है और कौन सी विदेशी कुंजी है, इसके बजाय आपको पता चलेगा कि वही कॉलम नाम संबंध में हैं .
आइए कुछ रिकॉर्ड डालें और देखें कि विदेशी कुंजी बाधा कैसे काम करती है।
 dbo.Customer (CustomerId,FName, LName,SSN) मानों (1,'आमिर', 'शहजाद','000-000-00') dbo.Orders में डालें (OrderItemName,OrderItemAmt,Customer_Id) मान ('TV',1,1)
 
 दोनों रिकॉर्ड ठीक से डाले जाएंगे, क्योंकि हम डीबीओ में एक ही ग्राहक आईडी डाल रहे हैं। ऑर्डर जो डीबीओ में मौजूद हैं। ग्राहक।
अगर हम डीबीओ में कोई मूल्य डालने का प्रयास करेंगे। ऑर्डर जो डीबीओ में मौजूद नहीं है। (ग्राहक आईडी), यह विदेशी कुंजी बाधा के कारण एक त्रुटि के माध्यम से होगा।
जब हम ऊपर क्वेरी चलाते हैं, तो यह त्रुटि के माध्यम से होता है क्योंकि हमारे पास dbo.Customer तालिका में ग्राहक आईडी के रूप में 2 नहीं है।
संदेश 547, स्तर 16, राज्य 0, पंक्ति 28 INSERT कथन विदेशी कुंजी के साथ विरोध करता है बाधा "FK__Orders__Customer__286302EC"। डेटाबेस "YourDatabaseName", तालिका "dbo.Customer", कॉलम 'Customerid' में विरोध हुआ। विवरण समाप्त कर दिया गया है।

वीडियो डेमो :विदेशी कुंजी बाधा क्या है और कैसे बनाएं SQL में विदेशी कुंजी बाधा


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL) में मौजूदा तालिका में एक CHECK बाधा जोड़ें

  2. SQL सर्वर में किसी तालिका के लिए सभी जाँच और विदेशी कुंजी बाधाओं को कैसे अक्षम करें (T-SQL उदाहरण)

  3. sql सर्वर अमान्य वस्तु का नाम - लेकिन तालिकाएँ SSMS तालिका सूची में सूचीबद्ध हैं

  4. मान को अल्पविराम से अलग करने के लिए COALESCE फ़ंक्शन का उपयोग करना

  5. SQL सर्वर क्वेरी में एक संयोजन विरोध को कैसे ठीक करें?