Како се користи ДРОП АКО ПОСТОЈИ у СКЛ серверу?



Испробајте Наш Инструмент За Елиминисање Проблема

Овај чланак говори о „КАПА АКО ПОСТОЈИ“ изјава доступна у СКЛ Сервер 2016 и новијим верзијама. „АКО ИЗЛАЗИ“ је најновија опционална клаузула додата у постојећу ДРОП изјаву у СКЛ Сервер 2016 и новијим верзијама. У суштини, „КАПА АКО ПОСТОЈИ“ опција се користи када је потребно проверити да ли ентитет остаје у бази података пре него што се креира или испушта. У овом случају, прво ћемо испустити постојећи објекат базе података, а затим га поново створити са променама ако је потребно.



Дакле, спречава стари начин писања иф услова и унутар иф услова писање изјаве да би се тестирало присуство објекта да би се испуштало. Ако се то не догоди, следећа наредба у пакету ће се и даље извршавати. Али ако покушамо да испустимо објекат који не постоји, појавиће се порука о грешци као што је приказано доле.



Извршите следећи упит.



дроп табле дбо.компаније

Излаз ће бити овакав.

Грешка настаје приликом испуштања објекта базе података који не постоји

Синтакса

„ДРОП објецт_типе [ИФ ЕКСИСТС] објецт_наме“

Аргументи

ОБЈЕЦТ_ТИПЕ:



Тип објекта може бити било ко из базе података, окидача, склопа, секвенце, индекса, табеле, приказа поступка, функције итд.

АКО ПОСТОЈИ:

То је необавезна клаузула и ако је наведена у изјави ДРОП, провериће постојање објекта, ако постоји, она ће пасти, у супротном ће наставити да извршава следећу наредбу у блоку без стварања грешака.

Сада увођењем нове методе „ДРОП ИФ ЕКСИСТС“ у СКЛ Сервер 2016 програмери могу да напишу кратки код.

Прво створите базу података под називом „аппуалс“.

Креирање базе података

Сада ћемо створити табелу која ће се испустити извршавањем следећег кода.

користите [аппуалс] Го ЦРЕАТЕ ТАБЛЕ темп (ид ИНТ, име варцхар (100)); ГО

Излаз ће бити следећи.

Стварање табеле

Даље, креирајте процедуру складиштења која ће бити испуштена помоћу следећег кода.

КОРИСТИТЕ [аппуалс] ГО СЕТ АНСИ_НУЛЛС ОН ГО СЕТ КУОТЕД_ИДЕНТИФИЕР ОН ГО Креирајте ПОСТУПАК [дбо]. [Сп_темп] КАКО ПОЧНЕТЕ ПОДЕСИТИ НОЦОУНТ ОН; СЕЛЕЦТ * са дбо.темп; КРАЈ

Излаз ће бити као доле.

Похраните креирање процедуре

Стара метода: Пре СКЛ сервера користећи дроп ако излази на објектима базе података

Коришћење методе ДРОП ИФ ЕКСИСТС пре него што је СКЛ Сервер 2016 захтевао писање дуготрајног кода омотача ИФ израза.

Отпустите табелу ако постоји

Претходни метод испуштања стола је следећи.

Ако користимо СКЛ Сервер 2015 или старију верзију, потребно је да извршимо следећу гомилу кода.

Ако (ОБЈЕЦТ_ИД ('дбо.темп') није нулл) Испустите темп табеле

Излаз ће бити следећи.

Испуштање стола

Сада је његова синтакса прилично збуњујућа, па ако вам се не свиђа, а користите СКЛ Сервер 2016 или новију верзију, уместо великих омотача можете да користите једноставну изјаву ДРОП ИФ ЕКСИСТ.

Отпустите поступак складиштења ако постоји:

Да бисмо одустали од процедуре, морамо да напишемо условну изјаву да бисмо проверили да ли процедура складишта постоји или не, а затим да напишемо кап. У супротном, изазваће грешку у случају да сачувана процедура не постоји.

Сада извршите следеће изразе да бисте испустили процедуру у верзијама нижим од СКЛ Сервер 2016.

АКО ПОСТОЈИ (ОДАБЕРИТЕ 1 ИЗ сис.процедурес ВХЕРЕ Наме = 'сп_темп') ПОСТУПАК ПАДАЊА дбо.сп_темп

Излаз ће бити овакав.

Отпустите процедуру помоћу старе методе иф омотача

Испустите базу података ако постоји:

Ако користите претходне верзије СКЛ Сервера, потребно је да извршите следећи код да бисте бацили базу података.

АКО ДБ_ИД ('аппуалс') НИЈЕ НУЛЛ ПОЧЕТАК ДРОП БАЗА ПОДАТАКА аппуалс ЕНД

Излаз ће бити следећи.

Отпустите базу података помоћу старе методе

Нова метода: ДРОП АКО ПОСТОЈИ подржано у верзији СКЛ Сервер 2016 и новијим

Да бисмо испустили објекат базе података у СКЛ Сервер 2016 и новијим верзијама, морамо извршити једноставан израз.

Отпусти табелу ако постоји:

У СКЛ Сервер 2016 можемо да напишемо изјаву како бисмо уклонили сачувану табелу ако постоји.

ТАПЕЛА ЗА СПУСТАЊЕ АКО ПОСТОЈИ дбо.темп

Излаз ће бити овакав.

Отпустите табелу помоћу нове методе

Поступак испуштања ако постоји:

Сада ћемо испустити сачувану процедуру коју смо креирали на почетку чланка извршавањем следећег кода.

ПОСТУПАК ПАДАЊА АКО ПОСТОЈИ дбо.сп_темп

Излаз ће бити као доле.

Отпустите табелу помоћу нове методе

Што се тиче синтаксе, ову једноставну изјаву је лако разумјети и лако памтити. Слично томе, можемо следити исти поступак за испуштање других објеката базе података.

Испустите базу података ако постоји:

Извршите следећи код ако желите да испустите базу података помоћу провере ако постоји

КОРИСТИТЕ МАСТЕР ГО ДРОП БАЗУ БАЗА АКО ПОСТОЈЕ аппуали

Излаз ће бити као доле.

Отпустите базу података помоћу нове методе

Предност коришћења ове методе је та што ако база података не постоји, неће узроковати грешку, следећа наредба у пакету ће се и даље извршавати. Покушајмо поново да испустимо већ испуштену базу података.

Грешка настаје приликом поновног испуштања већ испуштене базе података.

Слично томе, из базе података можемо испуштати индексе, погледе, секвенце, склопове итд.

3 минута читања