SQL Server Jeśli istnieje tabela upuszcza

SQL Server Jeśli istnieje tabela upuszcza

Jak zapewne już wiesz, nie możesz utworzyć tabeli w bazie danych, jeśli w bazie danych istnieje tabela o podobnej nazwie. Aby to przezwyciężyć, możesz sprawdzić, czy tabela istnieje, a jeśli prawda, upuść tabelę i utwórz nową tabelę.

W tym artykule dowiesz się, jak korzystać z operacji warunkowych SQL. Omówimy, jak sprawdzić, czy istnieje tabela, a jeśli prawda, upuść ją.

Wymagania

Testowaliśmy i wdrożyliśmy przykłady w instancji SQL Server w tym przewodniku. Jeśli chcesz odtworzyć podobne środowisko, upewnij się, że masz:

  1. Microsoft SQL Server 2019
  2. SQL Server Management Studio 18
  3. Zmień uprawnienia do docelowej bazy danych

Po uzyskaniu określonych wymogów możemy kontynuować samouczek.

Podstawy

Zanim dowiemy się, jak dodać logikę warunkową przed upuszczeniem tabeli, zobaczmy, co się stanie, gdy spróbujesz upuścić nieistniejącą tabelę w bazie danych.

Rozważ przykładowe zapytanie poniżej:

Użyj SalesDB;
Tabela upuszczania czy_not_exist;

Jeśli spróbujemy wykonać powyższe zapytanie, SQL Server zwróci błąd MSG 3701:

Logika warunku - metoda 1

Pierwszą metodą, której możesz użyć, gdy trzeba usunąć tabelę, jeśli istnieje, jest spadek, jeśli istnieje zapytanie. To zapytanie jest dostępne tylko w wersji SQL Server 2016 i wyższe.

Składnia jest jak:

Tabela upuszcza [jeśli istnieje] nazwa db_name.Schema_name.tbl_name;

Zapytanie sprawdzi, czy tabela istnieje, a jeśli prawda, upuść ją; W przeciwnym razie zignoruj ​​oświadczenie upuszczone.

Na przykład:

Użyj SalesDB;
Stół zrzutu, jeśli istnieje pracownicy;

Jeśli istnieje tabela, SQL spróbuje go upuścić.

Pamiętaj, że SQL reguluje upuszczenie stołu, nawet podczas korzystania z kropli, jeśli istnieje zapytanie.

Metoda 2 - ID obiektu

Drugą metodą jest użycie funkcji obiektu_id (). Funkcja zwraca identyfikator obiektu, jeśli istnieje określona nazwa.

Poniższy przykładowy kod pokazuje, jak używać funkcji obiektu_id (), aby dodać logikę warunkową podczas usuwania tabeli.

Użyj SalesDB;
Jeśli Object_id (n'dbo.Pracownicy, n'u ') nie jest null
Stół zrzutu [dbo].Pracownicy;

Możesz dowiedzieć się więcej o funkcji Object_id () w poniższym zasobie:

SQL Server Object_id () Dokumenty funkcyjne.

Metoda 3 - Schemat informacji

Możemy również użyć schematu informacji SQL Server do zapytania, jeśli istnieje tabela. Przykładowe zapytanie jest jak pokazano poniżej:

Użyj SalesDB;
Jeśli istnieje (
Wybierz * z Information_Schema.Tabele, w których nazwa table_name = „Pracownicy” i tabela_schema = „dbo”)
Stół zrzutu [dbo].[Pracownicy];

W powyższym przykładzie używamy schematu informacji, aby sprawdzić, czy istnieje określona tabela.

Zamknięcie

Korzystając z tego przewodnika, odkryłeś różne sposoby dodawania logiki warunkowej podczas upuszczania tabeli na SQL Server. Dodanie instrukcji warunkowych umożliwia zapobieganie błędom w zautomatyzowanych skryptach SQL.