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

स्व-संदर्भित विदेशी-कुंजी बाधाएं और हटाएं

एंडोमर के विपरीत, मुझे एक ट्रिगर का उपयोग करके खुशी होगी - लेकिन मैं बाधा जांच को नहीं हटाऊंगा। अगर आप इसे instead of . के रूप में लागू करते हैं ट्रिगर, आप वास्तविक डिलीट करने से पहले अन्य पंक्तियों को शून्य पर रीसेट कर सकते हैं:

CREATE TRIGGER T_tabData_D
on tabData
instead of delete
as
    set nocount on
    update tabData set fiData = null where fiData in (select idData from deleted)
    delete from tabData where idData in (select idData from deleted)

यह छोटा है, यह संक्षिप्त है, यह आवश्यक नहीं होगा यदि SQL सर्वर एक ही तालिका में विदेशी कुंजी कैस्केड को संभाल सकता है (अन्य आरडीबीएमएस में, आप केवल ON DELETE SET NULL निर्दिष्ट करने में सक्षम हो सकते हैं। विदेशी कुंजी बाधा के लिए, वाईएमएमवी)।



  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) में दिनांक और समय कार्यों की सूची

  2. SQL सर्वर तक पहुँचने के लिए उपयोगकर्ता नाम और मशीन का नाम कैसे पता करें

  3. संग्रहीत प्रक्रिया पैरामीटर प्राप्त करने के लिए SQL सर्वर 2005 मेटाडेटा खोज

  4. SQL सर्वर में एक डेटाबेस की गतिविधि का विश्लेषण कैसे करें

  5. DropDownList चयनित मान को SqlDataSource पर कैसे असाइन करें?