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