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

SQL सर्वर - ट्रिगर डालने से पहले

कृपया ट्रिगर के बजाय निम्नलिखित SQL सर्वर का परीक्षण करें जो पहले विवरण तालिका की जाँच करता है। यदि विवरण में डेटा गुम है, तो यह उस तालिका को सम्मिलित करता है दूसरे चरण के रूप में, यह कौशल तालिका में सम्मिलित करना जारी रखता है

CREATE Trigger MySkillsInsteadOfInsert on dbo.MySkills Instead Of Insert
AS
Begin

    insert into MySkills_details (
        EmpId -- and other relevant columns
    )
    select i.EmpId -- and other relevant columns
    from inserted i
    left join MySkills_details d on i.EmpId = d.EmpId
    where d.EmpId is null

    Insert Into MySkills(EmpId) -- and other relevant columns
    Select EmpId -- and other relevant columns
    From inserted i;

End

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. क्या मैं प्राथमिक कुंजी के लिए अनदेखा_dup_key चालू कर सकता हूं?

  2. सी # में पैरामीटर्स के माध्यम से SqlCommand में स्ट्रिंग सूची

  3. विजुअल स्टूडियो के माध्यम से बनाए गए मेरे डेटाबेस तक पहुंच प्राप्त नहीं कर सकता?

  4. दो चुनिंदा बयानों का योग परिणाम

  5. कैसे ठीक करें:"SQLServerAgent वर्तमान में नहीं चल रहा है ..."