SQL Server'da VARSA DROP Nasıl Kullanılır?



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Bu makale, 'VARSA BIRAK' deyimi SQL Server 2016 ve sonraki sürümlerde mevcuttur. 'ÇIKARSA' SQL Server 2016 ve sonraki sürümlerde mevcut DROP deyimine eklenen en son isteğe bağlı cümledir. Esasen, 'VARSA BIRAK' seçeneği, bir varlığın oluşturulmadan veya bırakılmadan önce bir veritabanında kalıp kalmadığını kontrol etmek gerektiğinde kullanılır. Bu durumda, önce mevcut veritabanı nesnesini bırakacağız ve ardından gerekirse değişikliklerle yeniden oluşturacağız.



Bu nedenle, eski if koşulunu yazma yöntemini ve if koşulunun içinde nesnenin varlığını test etmek için bir ifade yazmasını engeller. Eğer gerçekleşmezse, toplu işteki bir sonraki ifade yürütülmeye devam edecektir. Ancak var olmayan bir nesneyi düşürmeye çalışırsak, aşağıda gösterildiği gibi bir hata mesajı verecektir.



Aşağıdaki sorguyu yürütün.



açılır tablo dbo.company

Çıktı şöyle olacak.

Hata, var olmayan veritabanı nesnesini bırakırken ortaya çıkıyor

Sözdizimi

'DROP nesne_türü [VARSA] nesne_adı'

Argümanlar

NESNE TÜRÜ:



Nesne türü, veritabanı, tetikleyici, montaj, sıra, dizin, tablo, prosedür görünümü, işlev vb.

VARSA:

Opsiyonel bir cümle olup DROP deyiminde bahsedilmişse nesnenin varlığını kontrol edecek, varsa düşecek, aksi takdirde herhangi bir hata üretmeden bloktaki bir sonraki ifadeyi yürütmeye devam edecektir.

Şimdi, SQL Server 2016'da yeni yöntem olan 'DROP IF EXISTS' ile birlikte geliştiriciler kısa kod yazabilirler.

İlk önce 'appuals' adlı bir veritabanı oluşturun.

Bir veritabanı oluşturmak

Şimdi aşağıdaki kodu çalıştırarak bırakılacak bir tablo oluşturacağız.

[appuals] kullanın Git CREATE TABLE temp (id INT, name varchar (100)); GİT

Çıktı aşağıdaki gibi olacaktır.

Tablo oluşturma

Ayrıca, aşağıdaki kodu kullanarak bırakılacak bir mağaza prosedürü oluşturun.

[Appuals] KULLANIN GİT ANSI_NULLS AYARLA DEVAM EDİN YOLDA AYARLA QUOTED_IDENTIFIER AYARLA PROSEDÜR [dbo] oluşturun. [Sp_temp] BAŞLANGIÇ NOCOUNT AYARLA; Dbo.temp'den SEÇİN *; SON

Çıktı aşağıdaki gibi olacaktır.

Mağaza prosedürü oluşturma

Eski yöntem: SQL Server'dan önce, veritabanı nesnelerinde çıkarsa bırak kullanılır

SQL Server 2016'dan önce DROP IF EXISTS yöntemini kullanmak, uzun IF deyimi sarmalayıcı kodu yazmayı gerektiriyordu.

Varsa tabloyu bırak

Bir tabloyu düşürmenin önceki yöntemi aşağıdaki gibidir.

SQL Server 2015 veya daha eski bir sürümü kullanıyorsak, aşağıdaki kod grubunu yürütmemiz gerekir.

Eğer (OBJECT_ID ['dbo.temp') Boş Değilse) Tablo sıcaklığını düşür

Çıktı aşağıdaki gibi olacaktır.

Masayı düşürmek

Şimdi sözdizimi oldukça kafa karıştırıcı, bu yüzden beğenmediyseniz ve SQL Server 2016 veya üstünü kullanıyorsanız, büyük sarmalayıcılar yerine basit DROP IF EXIST deyimini tercih edebilirsiniz.

Varsa mağaza prosedürünü bırakın:

Prosedürü bırakmak için, saklama prosedürünün var olup olmadığını kontrol etmek için bir koşullu ifade yazmalıyız ve ardından drop ifadesini yazmalıyız. Aksi takdirde, saklı yordamın olmaması durumunda bir hata oluşturur.

Şimdi prosedürü SQL Server 2016'dan daha düşük sürümlere bırakmak için aşağıdaki ifadeleri yürütün.

VARSA (Sys.procedures WHERE Name = 'sp_temp' 'dan 1 SEÇİN) BIRAKMA PROSEDÜRÜ dbo.sp_temp

Çıktı şöyle olacak.

İf sarmalayıcı kodunun eski yöntemini kullanarak bırakma prosedürü

Varsa veritabanını bırak:

SQL Server'ın önceki sürümlerini kullanıyorsanız, veritabanını bırakmak için aşağıdaki kodu çalıştırmanız gerekir.

DB_ID ('appuals') BOŞ DEĞİLSE VERİTABANI BIRAKMA UYGULAMALARI SON

Çıktı aşağıdaki gibi olacaktır.

Veritabanını eski bir yöntem kullanarak bırakın

Yeni yöntem: DROP IF EXISTS, SQL Server 2016 ve üzeri sürümlerde desteklenir

SQL Server 2016 ve üstüne bir veritabanı nesnesi bırakmak için basit bir ifade yürütmemiz gerekir.

Varsa tabloyu bırakın:

Varsa depolanmış bir tabloyu kaldırmak için SQL Server 2016'da aşağıdaki gibi bir ifade yazabiliriz.

DROP TABLE VARSA dbo.temp

Çıktı şöyle olacak.

Yeni yöntemi kullanarak tabloyu bırakın

Varsa bırakma prosedürü:

Şimdi yazımızın başında oluşturduğumuz saklı yordamı aşağıdaki kodu çalıştırarak bırakacağız.

VARSA BIRAKMA PROSEDÜRÜ dbo.sp_temp

Çıktı aşağıdaki gibi olacaktır.

Yeni yöntemi kullanarak tabloyu bırakın

Sözdizimi söz konusu olduğunda, bu basit ifadenin anlaşılması ve hatırlanması kolaydır. Benzer şekilde, diğer veritabanı nesnelerini bırakmak için de aynı prosedürü izleyebiliriz.

Varsa veritabanını bırak:

Varsa onay kutusunu kullanarak veritabanını bırakmak istiyorsanız aşağıdaki kodu yürütün.

UYGULAMALAR VARSA MASTER GO DROP VERİTABANINI KULLANIN

Çıktı aşağıdaki gibi olacaktır.

Yeni yöntemi kullanarak veritabanını bırakın

Bu yöntemi kullanmanın yararı, veritabanı yoksa herhangi bir hataya neden olmayacak, toplu işteki sonraki ifadenin yürütülmeye devam edecek olmasıdır. Zaten bırakılmış olan veritabanını yeniden bırakmayı deneyelim.

Hata, zaten bırakılmış olan veritabanı yeniden bırakılırken ortaya çıkar.

Benzer şekilde, veritabanından dizinleri, görünümleri, dizileri, derlemeleri vb. Bırakabiliriz.

3 dakika okundu