Pazartesi, 24 Temmuz 2017

DROP IF EXISTS in SQL Server 2016 (DIE)

Merhabalar,

Bu yazımızda SQL Server 2016 ile hayatımıza girmiş olan yeniliklerden birinden sizlere bahsedeceğim. SQL Server 2016 öncesinde bir sql nesnesini drop edebilmek için var olup olmadığını kontrol etmemiz gerekirdi aksi taktirde aşağıdaki gibi bir hata ile karşılaşıyor olacaktık.

Dolayısı ise yukarıdaki gibi bir kullanım yapmadan önce var olup olmadığını aşağıdaki yöntemleri kullanarak bulup hatasız bir şekilde işlemin sonlanmasını sağlıyorduk.

IF
EXISTS
(SELECT
‘x’
FROM
sys.objects
AS O WHERE O.name
=
‘tmp_CaglarOZENC’
and O. [type] =
‘U’
)

DROP
table [tmp_CaglarOZENC]

Yada aşağıdaki gibi bir kullanım yapıyorduk.

IF
OBJECT_ID(‘tmp_CaglarOZENC’,‘U’)
IS
NOT
NULL

DROP
TABLE [tmp_CaglarOZENC]

Artık ise SQL Server 2016 ile gelen DIE ( Drop If Exists ) ile aşağıdaki gibi bir kullanım yaşantımıza katılmış oldu.

Drop
TABLE
IF
EXISTS tmp_CaglarOZENC

SQL Server 2016 ile eski versiyonlara göre daha az kod yazarak aynı işlemi yapmış olabiliyoruz. Hatta bir tablodaki kolunu yada constraint’i daha drop etmek için kullanabiliriz.

ALTER
TABLE [tmp_CaglarOZENC] DROP
CONSTRAINT
IF
EXISTS [ConstraintAdı]

ALTER
TABLE [tmp_CaglarOZENC] DROP
COLUMN
IF
EXISTS [TabloAdı]

SQL Server 2016 ile gelen DIE ( drop If Exists ) özelliği aşağıdaki nesneler için de kullanılabilir.

  • ASSEMBLY
  • VIEW
  • DATABASE
  • DEFAULT
  • FUNCTION
  • PROCEDURE
  • INDEX
  • AGGREGATE
  • ROLE
  • RULE
  • SCHEMA
  • SECURITY POLICY
  • SEQUENCE
  • SYNONYM
  • TABLE
  • TRIGGER
  • TYPE
  • USER
  • VIEW

    Faydalı olması dileği ile..

Bir Cevap Yazın

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