sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan indsætter man data, hvis ikke derimellem i sql server 2008?

Det bedste ville være at undgå triggere og udføre et tjek med, om eksisterer, før du indsætter

IF NOT EXISTS (SELECT TOP 1 1 FROM MyTable WHERE @InsertedEndDate > begin_date AND @InsertedBeginDate < end_date)
BEGIN
    --do actual insert/work
END

Det er en simpel kontrol for at finde det første overlap. Vælg TOP 1 1 er et trick til at undgå faktisk at hente dataene. Den vender tilbage, så snart den matcher en række, der overlapper det datointerval, du faktisk forsøger at gemme



  1. Hvordan laver man Import og Require sammen?

  2. OPDATERING Samme række efter OPDATERING i Trigger

  3. Hvad er IN, OUT, IN OUT parametre i PL/SQL

  4. fejl:ORA-65096:ugyldigt fælles bruger- eller rollenavn i oracle