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

SQL Server 2008 में अद्वितीय दिनांक सीमा फ़ील्ड लागू करना

मुझे लगता है कि यह स्थिति अधिक उपयुक्त है:

IF EXISTS ( SELECT  * --No need to choose columns in an EXISTS
        FROM    tbl_Example t1
         inner join
                tbl_Example t2
                  on
                     t1.StockCode = t2.StockCode and
                     t1.Type = t2.Type and
                     t1.ValidFrom < t2.ValidTo and
                     t2.ValidFrom < t1.ValidTo and
                     t1.ID <> t2.ID
        where
            t1.ID in (select ID from inserted))
BEGIN
     RAISERROR ('Date range cant overlap existing date ranges for given StockCode and Type', 16, 1)
     ROLLBACK --We're in a trigger, we *must* be in a transaction
END

यह ओवरलैप का पता लगाने के लिए सरल स्थिति का उपयोग करता है - यदि दोनों पंक्तियाँ दूसरी पंक्ति समाप्त होने से पहले शुरू होती हैं तो एक ओवरलैप मौजूद होता है।




  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 सर्वर 2008 में NVarChar में UTF-8 के संग्रहण में समस्या आ रही है

  2. VS2010 डेटाबेस प्रोजेक्ट में परिनियोजन पर DefaultDataPath और DefaultLogPath सेट करना

  3. कंडीशनल चेक इन व्हेयर क्लॉज

  4. SQL सर्वर (T-SQL उदाहरण) में 'डेटाटाइमऑफ़सेट' को 'डेटाटाइम' में बदलें

  5. वर्चर फ़ील्ड SQL Server 2008 से एकल वर्ण निकालें