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

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.

Böylece, eski if koşulu yazma yöntemini ve if koşulunun içinde nesnenin varlığını bırakıp bırakmayacağı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.

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ünden, işlevden vb. Herhangi biri olabilir.

VARSA:

Opsiyonel bir cümle olup DROP deyiminde bahsediliyorsa 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 bir yöntem olan "DROP IF EXISTS" ile birlikte geliştiriciler kısa kod yazabilirler.

İlk olarak, "appuals" adlı bir veritabanı oluşturun.

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

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 AYARLAYIN; Dbo.temp içinden SEÇİN *; SON

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

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ünü 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.

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

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.

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

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

Varsa tabloyu bırakın:

Varsa saklanan 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.

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.

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.

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

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

Facebook Twitter Google Plus Pinterest