Problem Statement –

obecnie jedną z najbardziej irytujących rzeczy w SQL, jest jawne sprawdzenie, czy obiekt istnieje przed upuszczeniem go.

podczas pisania skryptu TSQL/procedury składowanej wielokrotnie próbowałem upuścić kolumnę/tabelę/trigger/index/user i otrzymać komunikat o błędzie –
Invalid object name 'object_name'

czy ten Komunikat o błędzie wygląda znajomo?,

Nowa składnia w SQL Server 2016 –

w ramach ulepszeń TSQL Server 2016 wprowadza nową klauzulę –

DROP IF EXISTS, która warunkowo usuwa kolumnę lub ograniczenie tylko wtedy, gdy już istnieje.
Jeśli obiekt nie istnieje, to nie wyrzuci żadnego błędu i wykonywanie TSQL będzie kontynuowane.

DROP OBJECT_TYPE OBJECT_NAME

Ta składnia wygląda bardzo prosto i czysto.,

ta składnia dotyczy – bazy danych, tabeli, funkcji, wyzwalacza, procedury składowanej, kolumny, użytkownika, widoku, schematu, indeksu , roli

przyjrzyjmy się demonstracji tej nowej składni —

najpierw stwórzmy tabelę testową i wstawimy do niej kilka rekordów –

przed SQL Server 2016 zawsze musieliśmy wyraźnie sprawdzić, czy obiekt istnieje i rzuć to. Możemy to zrobić na kilka sposobów., Jednak wraz z pojawieniem się SQL Server 2016, możemy bardzo łatwo wykonać tę operację z prostą składnią –

możemy również wykorzystać tę nową instrukcję do naszych zapytań DML, aby usunąć kolumny/ograniczenia, zgodnie z wymaganiami., Zobacz poniżej —

załadowałem cały skrypt SQL, używany do celów tego artykułu, w tym linku w GITHUB

podsumowanie –

kropla jeśli exists jest prostym rozszerzeniem T-SQL w SQL Server 2016, ale jestem pewien, że będzie to jedna z najczęściej używanych składni w codziennym życiu programisty T-SQL.,

powiązane artykuły na temat SQL Server 2016 –

  • dynamiczne maskowanie danych w SQL Server 2016
  • podróż w czasie w SQL Server 2016 z tabelami czasowymi
  • Wbudowana obsługa JSON w SQL Server 2016
  • Porównaj plany wykonania w SQL Server 2016
  • przechowuj zapytania w SQL Server 2016
  • statystyki zapytań na żywo w SQL Server 2016