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

Najszybszy sposób na ustalenie, czy rekord istnieje

EXISTS (lub NOT EXISTS ) jest specjalnie zaprojektowany do sprawdzania, czy coś istnieje i dlatego powinno być (i jest) najlepszą opcją. Zatrzyma się w pierwszym pasującym wierszu, więc nie wymaga TOP klauzula i tak naprawdę nie wybiera żadnych danych, więc nie ma narzutu w rozmiarze kolumn. Możesz bezpiecznie użyć SELECT * tutaj - nie inaczej niż SELECT 1 , SELECT NULL lub SELECT AnyColumn ... (możesz nawet użyć nieprawidłowego wyrażenia, takiego jak SELECT 1/0 i nie pęknie).

IF EXISTS (SELECT * FROM Products WHERE id = ?)
BEGIN
--do what you need if exists
END
ELSE
BEGIN
--do what needs to be done if not
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. Znajdź uszkodzone obiekty w SQL Server

  2. Wybierz dane za pomocą funkcji wartościującej tabelę w SQL Server

  3. Przetwarzaj ciąg znaków oddzielonych przecinkami, aby utworzyć IN Lista ciągów w klauzuli Where

  4. Jak zapobiegać atakom typu SQL Injection przez bezpieczne?

  5. Jak wypisać wszystkie daty między dwiema datami?