SQL Server 2016 – DROP IF EXISTS

SQL Server 2016 ile gelen yeniliklerden, IF EXISTS koşulu DROP komutu ile birlikte opsiyonel olarak kullanılabilir hale geldi. Basitçe IF EXISTS belirtilen nesnenin var olup olmadığı bilgisini döndüren bir komuttur.
SQL Server 2016 ile birlikte gelen bu komutun sözdizimi aşağıdaki gibidir;

DROP OBJECT_TYPE [IF EXISTS] OBJECT_NAME

Örnek olması açısından aşağıdaki gibi bir veritabanı,tablo ve stored procedure oluşturuyorum.

[sql]

CREATE DATABASE SQLNews
GO
USE SQLNews
GO
CREATE TABLE cdUsers (Id INT,Name varchar(50))
GO
CREATE PROC SayHello
AS
SELECT ‘Hello SQL Server 2016’
GO

[/sql]

create_database

Oluşturmuş olduğumuz “SayHello” sp’mizi SQL Server 2016 ile birlikte gelen kullanım şekli ile siliyoruz.

[sql]

DROP PROCEDURE IF EXISTS SayHello

[/sql]

drop_procedure

SQL Server 2016 öncesi sürümlerinde yukarıdaki işlemleri aşağıdaki yöntemle yapabiliyoruz.

[sql]

IF OBJECT_ID(‘SQLNews.dbo.SayHello’) IS NOT NULL
BEGIN
DROP PROCEDURE SayHello
END

[/sql]

drop_procedure_last

SQL Server 2016 öncesi sürümlerinde IF EXISTS ile bir Stored Procedure‘nin var olup olmadığını bulmak istersek;

[sql]

IF EXISTS (SELECT 1 FROM sys.procedures WHERE Name=’SayHello’)
BEGIN
DROP PROCEDURE SayHello
END

[/sql]

drop_procedure_exists

Yukarıdaki stored procedure örneklerinde olduğu gibi aynı şekilde Tablo,View,Database vb. diğer nesneleri de IF EXISTS komutunu kullanarak silebilirsiniz.

[sql]

DROP TABLE IF EXISTS cdUsers

[/sql]

drop_table

[sql]

USE master
GO
DROP DATABASE IF EXISTS SQLNews

[/sql]

drop_database

Tavsiye

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.