Kuinka käyttää DROP IF EXISTSia SQL Serverissä?

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-ehdon 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.

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 lauseke, 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, kun SQL Server 2016: ssa otetaan käyttöön uusi menetelmä "DROP IF EXISTS", kehittäjät voivat kirjoittaa lyhyen koodin.

Luo ensin tietokanta nimeltä ”appuals”.

Nyt luomme pudotettavan taulukon suorittamalla seuraavan koodin.

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

Tulos on seuraava.

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; VALITSE * kohteesta dbo.temp; LOPPU

Tulos on seuraava.

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 pitkäpituisten 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.

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 lausekkeet pudottaaksesi menettely SQL Server 2016: ta vanhemmissa versioissa.

JOS OLOSSA (VALITSE 1 JÄRJESTELMISTÄ SYS.procedures WHERE Name = 'sp_temp')

Tulos on tällainen.

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.

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 SQL Server 2016: n mukaisen lausekkeen alla olevan taulukon poistamiseksi, jos se on olemassa.

PUDOTUSTAULUKKO, JOS ON, dbo.temp

Tulos on tällainen.

Pudotusmenettely, jos sellainen on:

Nyt pudotamme artikkelin alussa luomamme tallennetut toimenpiteet suorittamalla seuraavan koodin.

PUDOTUSMENETTELY JOS ON

Tulos on seuraava.

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-tarkistusta

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

Tulos on seuraava.

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

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


$config[zx-auto] not found$config[zx-overlay] not found