if object_id is not null ile if exists farkı

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
uykumodunda
Üye
Mesajlar: 6
Kayıt: 03 Kas 2023 12:45

if object_id is not null ile if exists farkı

Mesaj gönderen uykumodunda »

sql server da stored procedure basına yazılan if object_id is not null ile sql server if exists farkı ney?biribirinin yerine kullanılır mı
Çok sevmekte yetmiyor bazen...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7589
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: if object_id is not null ile if exists farkı

Mesaj gönderen mussimsek »

not null -> değerin null olmadığını kontrol eder.

exists ise genelde kayıt olup olmadığını kontrol için kullanılır.

exists (select 1 from TABLOADI where şart=0)

gibi. Genelde aynı gibi olsalarda exists ilk kayıtı bulduğu anda gerisine bakmaz ve daha hızlı çalışır. Mümkün olduğu kadar exists kullanmakta fayda var.

Kolay gelsin.
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: if object_id is not null ile if exists farkı

Mesaj gönderen anemos »

Bir tablonun varlığını denetlemek için object_id fonksiyonu kullanmak daha pratiktir. Böyle bir durumda hız önemsizdir bence... Ki, object_id fonksiyonu da sahne arkasında exists gibi sistem tablolarını okuyor sonuçta.

.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: if object_id is not null ile if exists farkı

Mesaj gönderen sabanakman »

İkisi farklı çalışan fonksiyon. EXISTS bir kayıt seti (satır veya satırlar içeren tablo) içinde kayıt var mı yok mu bunu tespit eder. Kayıt varsa TRUE yoksa FALSE sonucu üretir. OBJECT_ID ise veritabanında o nesne varsa ID değerini verir, o nesne yoksa NULL değeri verir.

Kod: Tümünü seç

if EXISTS(select null)
  select 'Kayıt var'
else
  select 'Kayıt yok'


if OBJECT_ID('TabloAdi') is null
  select 'Nesne var'
else
  select 'Nesne yok'
Burada örneğe dikkat edilirse NULL değere sahip 1 satırlık kayıt geldiği için "Kayıt var" sonucu geleceğine dikkat çekmek isterim.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla