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

एक बाधा जो केवल दो तालिकाओं में से एक को आधार तालिका को संदर्भित करने की अनुमति देती है

यूडीएफ के साथ बाधाओं की जांच करें (जो ओडेड का जवाब है) अच्छी तरह से स्केल नहीं करते हैं और खराब समेकन रखते हैं। इन्हें देखें:

  • चेक बाधाओं में लिपटे स्केलर यूडीएफ बहुत धीमे हैं और बहु-पंक्ति अपडेट के लिए विफल हो सकते हैं
  • टोनी रोजर्सन

तो:

  • एक नई तालिका बनाएं, जैसे TableA2XY
  • इसमें टेबलए का पीके और एक एक्स या वाई की अनुमति देने के लिए एक जांच के साथ एक चार(1) कॉलम है। और ए के पीके पर भी एक अद्वितीय बाधा है।
  • tableX और tableY में चेक के साथ नया char(1) कॉलम है, जो क्रमशः केवल X या Y की अनुमति देता है
  • tableX और tableY का FK से TableA2XY दोनों स्तंभों पर होता है

यह सुपरकी या उपप्रकार दृष्टिकोण है

  • सभी डीआरआई आधारित
  • कोई ट्रिगर नहीं
  • चेक बाधाओं में टेबल एक्सेस के साथ कोई udfs नहीं।


  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 तरीके

  3. SQL सर्वर (T-SQL उदाहरण) में लिंक किए गए सर्वर से कॉलम जानकारी लौटाएं

  4. इकाई ढांचे के माध्यम से टी-एसक्यूएल संग्रहित प्रो में इनट्स की सरणी पास करना

  5. SQL सर्वर में विदेशी कुंजियों के साथ सभी तालिकाओं को वापस करने के 7 तरीके