Kuinka DROP IF EXISTS -ohjelmaa käytetään SQL Serverissä?

Kuinka DROP IF EXISTS -ohjelmaa käytetään SQL Serverissä?

How Use Drop If Exists Sql Server

Tässä artikkelissa käsitellään 'PISTE, JOS OLEMASSA' käsky saatavilla SQL Server 2016: ssa ja uudemmissa versioissa. 'JOS POISTUU' on uusin valinnainen lauseke, joka on lisätty olemassa olevaan DROP-käskyyn SQL Server 2016: ssa ja sitä uudemmissa versioissa. Pohjimmiltaan 'PISTE, JOS OLEMASSA' Vaihtoehtoa käytetään, kun on tarpeen tarkistaa, pysyykö entiteetti tietokannassa ennen sen luomista tai pudottamista. Tässä tapauksessa pudotamme ensin olemassa olevan tietokantaobjektin ja luomme sen tarvittaessa tarvittaessa muutoksilla.



Siten se estää vanhan tavan kirjoittaa if condition ja if if -puolen sisällä kirjoittaa lausekkeen objektin läsnäolon testaamiseksi pudottamaan se. Jos sitä ei tapahdu, erän seuraava käsky suoritetaan edelleen. Mutta jos yritämme pudottaa objektin, jota ei ole olemassa, se herättää virheilmoituksen, kuten alla on esitetty.

Suorita seuraava kysely.

pudota pöytä dbo. yritys

Tulos on tällainen.



Virhe syntyy pudotettaessa tietokantaobjektia, jota ei ole olemassa

Syntaksi

'DROP object_type [JOS OLOSSA] object_name'

Väitteet

OBJECT_TYPE:

Kohdetyyppi voi olla kuka tahansa tietokannasta, liipaisimesta, kokoonpanosta, sekvenssistä, hakemistosta, taulukosta, toimintonäkymästä, toiminnosta jne.



JOS ON:

Se on valinnainen lause, ja jos se mainitaan DROP-käskyssä, se tarkistaa objektin olemassaolon, jos se on olemassa, se putoaa, muuten se jatkaa lohkon seuraavan lauseen suorittamista aiheuttamatta virheitä.

Nyt uuden menetelmän 'DROP IF EXISTS' käyttöönoton myötä SQL Server 2016: ssa kehittäjät voivat kirjoittaa lyhyen koodin.

Luo ensin ”appuals” -tietokanta.

Tietokannan luominen

Nyt luomme pudotettavan taulukon suorittamalla seuraavan koodin.

käytä [appuals] Go CREATE TABLE temp (id INT, nimi varchar (100)); MENNÄ

Tulos on seuraava.

Taulukon luominen

Luo lisäksi hylättävä myymälämenettely seuraavalla koodilla.

KÄYTÄ [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO Create PROCEDURE [dbo]. [Sp_temp] AS BEGIN SET NOOUNT ON; SELECT * kohteesta dbo.temp; LOPPU

Tulos on seuraava.

Kaupan luominen

Vanha menetelmä: Ennen SQL Serverin käyttämistä drop if poistuu tietokantaobjekteista

DROP IF EXISTS -menetelmän käyttäminen ennen SQL Server 2016 -ohjelmaa vaati pitkien IF-lauseiden käärintäkoodien kirjoittamista.

Pudota taulukko, jos sellainen on

Aikaisempi tapa pudottaa pöytä on seuraava.

Jos käytämme SQL Server 2015: ää tai aikaisempaa, meidän on suoritettava seuraava koodiryhmä.

Jos (OBJECT_ID ('dbo.temp') ei ole tyhjä) Drop Table temp

Tulos on seuraava.

Pudotetaan

Nyt sen syntaksi on melko hämmentävä, joten jos et pidä siitä ja käytät SQL Server 2016: ta tai uudempaa, voit käyttää yksinkertaista DROP IF EXIST -lauseketta isojen kääreiden sijaan.

Drop Store -menettely, jos sellainen on:

Menettelyn poistamiseksi meidän on kirjoitettava ehdollinen lauseke tarkistamaan, onko myymälämenetelmä olemassa vai ei, ja sitten kirjoittaa pudotuslauseke. Muussa tapauksessa se aiheuttaa virheen, jos tallennettua menettelyä ei ole olemassa.

Suorita nyt seuraavat lauseet pudottaaksesi menettely SQL Server 2016: ta vanhemmissa versioissa.

JOS ON (VALITSE 1 JÄRJESTELMÄSTÄ sys.procedures WHERE Name = 'sp_temp') PUDOTUSMENETTELY dbo.sp_temp

Tulos on tällainen.

Pudota menettely käyttämällä vanhaa if wrapper -koodimenetelmää

Pudota tietokanta, jos sellainen on:

Jos käytät SQL Serverin aiempia versioita, sinun on suoritettava seuraava koodi pudottaaksesi tietokanta.

JOS DB_ID ('appuals') EI OLE NULL BEGIN DROP DATABASE -sovellusten LOPPU

Tulos on seuraava.

Pudota tietokanta vanhalla menetelmällä

Uusi menetelmä: DROP IF EXISTS tukee SQL Server 2016 ja uudemmat versiot

Jos haluat pudottaa tietokantaobjektin SQL Server 2016: een tai uudempaan, meidän on suoritettava yksinkertainen käsky.

Pudota taulukko, jos sellainen on:

Voimme kirjoittaa seuraavan lausekkeen SQL Server 2016: ssa poistamaan tallennetun taulukon, jos sellainen on olemassa.

PUDOTUSTAULUKKO, JOS ON, dbo.temp

Tulos on tällainen.

Pudota taulukko uudella menetelmällä

Pudotusmenettely, jos sellainen on:

Nyt pudotamme artikkelin alussa luomamme tallennetut toimenpiteet suorittamalla seuraavan koodin.

PUDOTUSMENETTELY, JOS OLOSSA Dbo.sp_temp

Tulos on seuraava.

Pudota taulukko uudella menetelmällä

Syntaksin osalta tämä yksinkertainen lausuma on helppo ymmärtää ja helppo muistaa. Vastaavasti voimme noudattaa samaa menettelyä pudottaaksemme muut tietokantaobjektit.

Pudota tietokanta, jos sellainen on:

Suorita seuraava koodi, jos haluat pudottaa tietokannan käyttämällä jos olemassa -valintaruutua

KÄYTÄ MASTER GO DROP DABABASE -TOIMINTAA, JOS OLOSSA ON ASIAKKAITA

Tulos on seuraava.

Pudota tietokanta uudella menetelmällä

Tämän menetelmän käytön etuna on, että jos tietokantaa ei ole, se ei aiheuta virheitä, erän seuraava käsky suoritetaan edelleen. Yritetään pudottaa jo pudotettu tietokanta uudelleen.

Virhe syntyy pudotettaessa jo pudotettua tietokantaa.

Vastaavasti voimme pudottaa hakemistoja, näkymiä, sekvenssejä, kokoonpanoja jne. Tietokannasta.

3 minuuttia luettu