Paano Gumamit ng DROP IF EXISTS sa SQL Server?



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Tinalakay sa artikulong ito ang 'DROP IF EXISTS' magagamit ang pahayag sa SQL Server 2016 at mga susunod na bersyon. 'KUNG NAGLABAS' ay ang pinakabagong opsyonal na sugnay na idinagdag sa umiiral na pahayag ng DROP sa SQL Server 2016 at mga susunod na bersyon. Mahalaga, ang 'DROP IF EXISTS' Ginagamit ang pagpipilian kung kinakailangan upang suriin kung ang isang entity ay mananatili sa isang database bago ito nilikha o bumagsak. Sa kasong ito, ihuhulog muna namin ang umiiral na object ng database at pagkatapos ay likhain ito muli ng mga pagbabago kung kinakailangan.



Sa gayon, pinipigilan nito ang dating paraan ng pagsulat kung kundisyon at sa loob ng kung kundisyon sa pagsulat ng isang pahayag upang subukan ang pagkakaroon ng bagay na ihulog ito. Kung hindi ito nangyari, ang susunod na pahayag sa batch ay magpapatuloy na maipatupad. Ngunit kung susubukan naming i-drop ang isang bagay na wala pagkatapos ay tataas nito ang isang mensahe ng error tulad ng ipinakita sa ibaba.



Ipatupad ang sumusunod na query.



drop table dbo.company

Ang output ay magiging ganito.

Lumilitaw ang error habang ibinabagsak ang object ng database na wala

Syntax

'I-DROP object_type [KUNG Umiiral] object_name'

Mga Pangangatwiran

OBJECT_TYPE:



Ang uri ng object ay maaaring maging sinuman mula sa database, trigger, pagpupulong, pagkakasunud-sunod, index, talahanayan, view ng pamamaraan, pag-andar, atbp.

KUNG Umiiral:

Ito ay isang opsyonal na sugnay at kung nabanggit ito sa pahayag ng DROP, susuriin nito ang pagkakaroon ng bagay, kung mayroon ito ay mahuhulog, kung hindi man ay magpapatuloy itong isagawa ang susunod na pahayag sa bloke nang hindi gumagawa ng anumang mga pagkakamali.

Ngayon sa pagpapakilala ng bagong pamamaraan na 'DROP IF EXISTS' sa mga SQL Server 2016 na mga developer ay maaaring sumulat ng maikling code.

Una, lumikha ng isang database na pinangalanang 'mga appual'.

Lumilikha ng isang database

Ngayon, lilikha kami ng isang talahanayan na mai-drop sa pamamagitan ng pagpapatupad ng sumusunod na code.

gumamit ng [mga appual] Pumunta GUMAWA NG TABLE temp (id INT, name varchar (100)); GO na

Ang output ay magiging tulad ng sumusunod.

Paglikha ng mesa

Dagdag dito, lumikha ng isang pamamaraan ng tindahan na mai-drop gamit ang sumusunod na code.

GAMITIN ang [mga appual] GO SET ANSI_NullS ON GO SET QUOTED_IDENTIFIER ON GO Lumikha ng PAMAMARAAN [dbo]. [Sp_temp] BILANG MAGSIMULA NG NAKATAKDANG NOCOUNT SA; PUMILI * mula sa dbo.temp; WAKAS

Ang output ay magiging tulad sa ibaba.

Paglikha ng pamamaraan ng tindahan

Lumang pamamaraan: Bago ang SQL Server na gumagamit ng drop kung lumabas sa mga object ng database

Gamit ang DROP IF EXISTS na pamamaraan bago ang SQL Server 2016 kinakailangan ng pagsusulat ng mahabang KUNG pahayag na mga wrappers code.

I-drop table kung mayroon

Ang naunang pamamaraan ng pag-drop ng isang table ay ang mga sumusunod.

Kung gumagamit kami ng SQL Server 2015 o mas maaga kaysa sa kailangan naming ipatupad ang sumusunod na bungkos ng code.

Kung (OBJECT_ID ('dbo.temp') Ay Hindi Null) Drop Table temp

Ang output ay magiging tulad ng sumusunod.

Pagkahulog ng mesa

Ngayon ang syntax nito ay lubos na nakalilito kaya kung hindi mo gusto ito at gumagamit ka ng SQL Server 2016 o sa itaas maaari kang pumunta para sa simpleng pahayag na DROP IF EXIST sa halip na mga malalaking pambalot.

I-drop ang pamamaraan ng tindahan kung mayroon:

Upang i-drop ang pamamaraan, kailangan naming magsulat ng isang kondisyon na pahayag upang suriin kung ang pamamaraan ng tindahan ay mayroon o hindi pagkatapos ay isulat ang drop statement. Kung hindi man, tataasan nito ang isang error kung sakaling wala ang nakaimbak na pamamaraan.

Ipatupad ngayon ang mga sumusunod na pahayag upang i-drop ang pamamaraan sa mga bersyon na mas mababa sa SQL Server 2016.

KUNG EXISTS (SELECT 1 MULA sa sys.procedures WHERE Name = 'sp_temp') DROP PROCEDURE dbo.sp_temp

Ang output ay magiging ganito.

I-drop ang pamamaraan sa pamamagitan ng paggamit ng lumang pamamaraan ng kung wrapper code

I-drop ang database kung mayroon:

Kung gumagamit ka ng nakaraang mga bersyon ng SQL Server kailangan mong isagawa ang sumusunod na code upang i-drop ang database.

KUNG ang DB_ID ('appuals') ay HINDI NULONG MAGSIMULA NG DROP DATABASE ang mga appual ay WAKAS

Ang output ay magiging tulad ng sumusunod.

I-drop ang database sa pamamagitan ng paggamit ng isang lumang pamamaraan

Bagong pamamaraan: I-DROP KUNG MAY Umiiral na sinusuportahan sa SQL Server 2016 at mas mataas na bersyon

Upang i-drop ang isang object ng database sa SQL Server 2016 at sa itaas kailangan namin upang magpatupad ng isang simpleng pahayag.

I-drop ang talahanayan kung mayroon:

Maaari kaming magsulat ng isang pahayag tulad ng sa ibaba sa SQL Server 2016 upang alisin ang isang nakaimbak na talahanayan kung mayroon ito.

TABLE NG DROP KUNG UULIT dbo.temp

Ang output ay magiging ganito.

I-drop ang talahanayan sa pamamagitan ng paggamit ng bagong pamamaraan

I-drop ang pamamaraan kung mayroon:

Ngayon ay ihuhulog namin ang nakaimbak na pamamaraan na nilikha namin sa simula ng artikulo sa pamamagitan ng pagpapatupad ng sumusunod na code.

PATUNGKOL SA PAMAMARAAN KUNG UARI NA dbo.sp_temp

Ang output ay magiging tulad sa ibaba.

I-drop ang talahanayan sa pamamagitan ng paggamit ng bagong pamamaraan

Hinggil sa pag-aalala sa syntax, ang simpleng pahayag na ito ay madaling maunawaan at madaling matandaan. Katulad nito, maaari nating sundin ang parehong pamamaraan upang i-drop ang iba pang mga object ng database.

I-drop ang database kung mayroon:

Isagawa ang sumusunod na code kung nais mong i-drop ang database sa pamamagitan ng paggamit kung mayroon nang tseke

GAMITIN ANG MASTER GO DROP DATABASE KUNG Umiiral ang mga appual

Ang output ay magiging tulad sa ibaba.

I-drop ang database sa pamamagitan ng paggamit ng bagong pamamaraan

Ang pakinabang ng paggamit ng pamamaraang ito ay na kung wala ang database hindi ito magiging sanhi ng anumang pagkakamali, ang susunod na pahayag sa batch ay magpapatuloy na maipatupad. Subukan nating i-drop muli ang nahulog na database.

Lumilitaw ang error habang muling ibinabagsak ang nahulog na database.

Katulad nito, maaari naming i-drop ang mga index, view, pagkakasunud-sunod, pagpupulong, atbp mula sa database.

Basahin ang 3 minuto