w Sql Server 2016, JEŚLI ISTNIEJE, jest nowa opcjonalna klauzula wprowadzona w istniejącej instrukcji DROP. Zasadniczo sprawdza istnienie obiektu, jeśli obiekt istnieje, To Go upuszcza, a jeśli nie istnieje, kontynuuje wykonywanie następnej instrukcji w partii. Zasadniczo unika pisania warunku if I wewnątrz warunku if napisania instrukcji w celu sprawdzenia istnienia obiektu.,
składnia:
DROP OBJECT_TYPE OBJECT_NAME
gdzie: OBJECT_TYPE jak tabela, procedura, Widok, funkcja, baza danych, WYZWALACZ, montaż, Sekwencja, indeks itp.
JEŚLI ISTNIEJE: jest to klauzula opcjonalna i jeśli jest wymieniona w instrukcji DROP, to sprawdza istnienie obiektu, jeśli istnieje, to drop w przeciwnym razie kontynuuje wykonywanie następnej instrukcji w bloku bez powodowania żadnych problemów.
pozwól nam zrozumieć tę nową klauzulę IF EXISTS w instrukcji DROP z obszerną listą przykładów., Aby zademonstrować tę klauzulę, najpierw stwórzmy przykładową bazę danych z Tabelą i procedurą składowaną.
CREATE DATABASE SqlHintsDemoDBGOUSE SqlHintsDemoDBGOCREATE TABLE dbo.Customers (Id INT, Name Nvarchar(50))GOCREATE PROCEDURE dbo.WelcomeMessageASSELECT 'Welcome to Sql Server'GO
upuść procedurę składowaną, jeśli istnieje
Jak sprawdzić, czy procedura składowana istnieje
w Sql Server 2016 możemy napisać instrukcję jak poniżej, aby upuścić procedurę składowaną, jeśli istnieje.
DROP PROCEDURE IF EXISTS dbo.WelcomeMessage
jeśli procedura składowana nie istnieje, nie spowoduje żadnego błędu, będzie kontynuować wykonywanie następnej instrukcji w partii., Spróbujmy ponownie upuścić procedurę składowaną WelcomeMessage, która już została upuszczona.
z wyniku wynika, że procedura składowana nie spowoduje żadnego błędu, jeśli procedura składowana nie istnieje, kontynuuje wykonywanie następnej instrukcji w partii.
w poprzednich wersjach SQL Server używamy instrukcji jak poniżej, aby upuścić procedurę składowaną, jeśli istnieje.,
IF EXISTS(SELECT 1 FROM sys.procedures WHERE Name = 'WelcomeMessage')BEGIN DROP PROCEDURE dbo.WelcomeMessageEND
możesz przejrzeć artykuł Jak sprawdzić, czy istnieje procedura składowana, aby zobaczyć różne opcje w poprzednich wersjach Sql Server, aby sprawdzić istnienie procedury składowanej.
upuść tabelę, jeśli istnieje
Jak sprawdzić, czy tabela istnieje
w Sql Server 2016 możemy napisać instrukcję, jak poniżej, aby upuścić tabelę, jeśli istnieje.,
DROP TABLE IF EXISTS dbo.Customers
jeśli tabela nie istnieje, nie spowoduje żadnego błędu, będzie kontynuować wykonywanie następnej instrukcji w partii. Spróbujmy ponownie zrzucić tabelę dbo.Klientów, które już zostały odrzucone.
z wyniku wynika, że nie spowoduje błędu, jeśli tabela nie istnieje, będzie kontynuować wykonywanie następnej instrukcji w partii.,
w poprzednich wersjach Sql Server używamy instrukcji jak poniżej, aby upuścić tabelę, jeśli istnieje.
IF EXISTS(SELECT 1 FROM sys.Tables WHERE Name = N'Customers' AND Type = N'U')BEGIN DROP TABLE dbo.CustomersEND
możesz przejrzeć artykuł Jak sprawdzić, czy istnieje tabela, aby zobaczyć różne opcje w poprzednich wersjach Sql Server, aby sprawdzić istnienie tabeli.
upuść bazę danych, jeśli istnieje
Jak sprawdzić, czy baza danych istnieje
w Sql Server 2016 możemy napisać instrukcję jak poniżej, aby upuścić bazę danych, jeśli istnieje.,
USE MASTERGODROP DATABASE IF EXISTS SqlHintsDemoDB
jeśli Baza Danych nie istnieje, nie spowoduje żadnego błędu, będzie kontynuować wykonywanie następnej instrukcji w partii. Spróbujmy ponownie upuścić bazę danych Sqlhintsdemodb, która jest już upuszczona.
z wyniku wynika, że nie spowoduje błędu, jeśli baza danych nie istnieje, będzie kontynuować wykonywanie następnej instrukcji w partii.,
w poprzednich wersjach Sql Server używamy instrukcji jak poniżej, aby upuścić bazę danych, jeśli istnieje.
IF DB_ID('SqlHintsDemoDB') IS NOT NULLBEGIN DROP DATABASE SqlHintsDemoDBEND
możesz przejrzeć artykuł Jak sprawdzić, czy istnieje baza danych, aby zobaczyć różne opcje w poprzednich wersjach Sql Server, aby sprawdzić istnienie bazy danych.,Funkcja ISJSON w SQL Server 2016