Sql Server da bazen belirli bir tablonun olup olmama durumuna göre işlem yapmamız gerekebilir.Aslen benim karşılaştığım bir temptable ı kontrol etme sorunuydu ve bulduktan sonra burada da paylaşmak istedim ama önce normal bir tabloyu nasıl kontrol ederiz onun hakkında bir örnek vereceğim sonrasında ise bir temp table nasıl kontrol edip duruma göre nasıl işlem yaparız ona bakacağız.
sql de bir tablonun var olup olmadığını kontrol etmek :
IF EXISTS (SELECT * FROM sys.objects --sistem tablolarının tutulduğu tabloya select çekiyoruz.
WHERE object_id = OBJECT_ID(N'dbo.Personel') --Personel tablomuzu filtre olarak ekliyouz.
AND type in (N'U')--Tablo ismini yazmıştık şimdide bir tip filtresi ekliyoruz.bu select çektiğimiz tablodaki tip karşılıklarını aşağıda detaylı olarak verdim.
)
BEGIN
PRINT 'tablo var :)'
--buraya tablo var ise yapılacaklar yazılır
END
ELSE --eğer tablo yok ise
BEGIN
PRINT 'tablo bulunamadı :('
--buraya tablo yok ise yapılacaklar yazılır
END
sys.objects tablosunda bulunan type'lar ve açıklamaları :
Tip Tip açıklaması
C----CHECK_CONSTRAINT
D----DEFAULT_CONSTRAINT
F----FOREIGN_KEY_CONSTRAINT
FN--SQL_SCALAR_FUNCTION
IT---INTERNAL_TABLE
P----SQL_STORED_PROCEDURE
PK--PRIMARY_KEY_CONSTRAINT
S----SYSTEM_TABLE
SQ--SERVICE_QUEUE
TR--SQL_TRIGGER
U----USER_TABLE
UQ--UNIQUE_CONSTRAINT
V----VIEW
Şimdide bir Temp Table kontrol edelim :
IF OBJECT_ID('tempdb..#PersonelReport') IS NOT NULL
BEGIN
PRINT 'tablo var :)'
--tablo var ise yapılacaklar
END
ELSE
BEGIN
PRINT 'tablo bulunamadı :('
--tablo yok ise yapılacaklar
END