Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wstawić dane, jeśli nie pomiędzy w sql server 2008?

Najlepiej byłoby unikać wyzwalaczy i przed wstawieniem sprawdzić, czy istnieje

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

To proste sprawdzenie, aby znaleźć pierwsze zachodzenie na siebie. Wybierz TOP 1 1 to sztuczka, która pozwala uniknąć faktycznego pobierania danych. Powróci, gdy tylko pasuje do wiersza, który pokrywa się z zakresem dat, który faktycznie próbujesz zapisać



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zamień zduplikowane spacje na pojedynczą spację w T-SQL

  2. Utrata precyzji liczbowej serwera SQL 2005

  3. Jak lepiej zduplikować zestaw danych w SQL Server

  4. Przechowywanie dynamicznego wyniku Pivot w tabeli tymczasowej w SQL Server

  5. Błąd 28000:Logowanie nie powiodło się dla użytkownika DOMENA\\użytkownik z pyodbc