sql >> Database >  >> RDS >> Sqlserver

Hoe gegevens in te voegen als ze er niet tussen zitten in SQL Server 2008?

Het beste zou zijn om triggers te vermijden en een controle uit te voeren met if bestaat voordat u invoegt

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

Het is een eenvoudige controle om de eerste overlap te vinden. De Select TOP 1 1 is een truc om te voorkomen dat de gegevens daadwerkelijk worden opgehaald, het zal terugkeren zodra het overeenkomt met een rij die het datumbereik overlapt dat u daadwerkelijk probeert op te slaan



  1. Hoe een Oracle-functie aanroepen met een Ref Cursor als Out-parameter van C #?

  2. Een uitsluitingsbeperking maken met een datumbereik met behulp van sqlalchemy

  3. Selecteer een waarde uit een groep op basis van volgorde uit andere kolommen

  4. Hoe u alle producten met specifieke multi-attribuutwaarden kunt vinden