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

दो कॉलम के डुप्लिकेट डेटा के लिए सम्मिलन को रोकने के लिए ट्रिगर

कुछ इस तरह:

CREATE TRIGGER MyTrigger ON dbo.MyTable
AFTER INSERT
AS

if exists ( select * from table t 
    inner join inserted i on i.name=t.name and i.date=t.date and i.id <> t.id)
begin
    rollback
    RAISERROR ('Duplicate Data', 16, 1);
end
go

यह सिर्फ डालने के लिए है, हो सकता है कि आप अपडेट पर भी विचार करना चाहें।

अपडेट करें

एक आसान तरीका यह होगा कि टेबल पर केवल एक अद्वितीय बाधा उत्पन्न की जाए, यह इसे अपडेट के लिए भी लागू करेगा और ट्रिगर की आवश्यकता को हटा देगा। बस करें:

ALTER TABLE [dbo].[TableName]    
ADD CONSTRAINT [UQ_ID_Name_Date] UNIQUE NONCLUSTERED
(
    [Name], [Date]
)

और फिर आप व्यवसाय में होंगे।



  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 सर्वर में OBJECTPROPERTY () का उपयोग करके जांचें कि क्या कोई ऑब्जेक्ट एक संग्रहीत प्रक्रिया है

  2. आसान तरीका किसी दी गई तालिका के लिए प्राथमिक कुंजी के रूप में सही कॉलम का चयन करें

  3. SQL सर्वर में लेनदेन का सही उपयोग

  4. SQL में एक शीर्ष स्तरीय अभिभावक ढूँढना

  5. SQLException:स्ट्रिंग या बाइनरी डेटा को छोटा कर दिया जाएगा