sql >> Databáze >  >> RDS >> Sqlserver

Vynucení jedinečných polí rozsahu dat v SQL Server 2008

Myslím, že tato podmínka je vhodnější:

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

Používá jednodušší podmínku pro detekci překrývání – překrytí existuje, pokud oba řádky začínají dříve, než končí druhý řádek.




  1. Která je podřízená tabulka v Identifikačním nebo Neidentifikujícím vztahu?

  2. Migrace Azure Database for MySQL/MariaDB na On-Prem Server

  3. Python MySQLdb – Chyba 1045:Uživateli byl odepřen přístup

  4. Dotaz MySQL pro výběr dat z minulého týdne?