MSSQL de Geçici (Temporary) Tablo İşlemleri

MSSQL de Geçici (Temporary) Tablo İşlemleri

MSSQL de CRUD işlemlerini veritabanında yeni bir table oluşturmaya gerek kalmadan geçici tablolar oluşturarak yapabiliriz. Geçici tablolar oluşturulduğu döküman (Query Window) içerisinde kullanılabilir. Döküman kapandıktan sonra oluşturulmuş geçici tablolar ve bu tablolara ait bütün veriler de silinir. Server hızını etkilemeyen bu geçici tabloların kullanımı normal SQL sorgularından başka bir şey değildir.

Geçici tablolar üzerinde create, alter ve drop sorguları yazmanız için database admin olmanıza veya veritabanı yöneticisi tarafından yetkilendirilmenize gerek yoktur.

 

TABLO OLUŞTURMA

create table #Student ( 
	ID int identity(1,1) primary key,
	FirstName nvarchar(50),
	LastName nvarchar(50),
	Department nvarchar(50) null
)

Yukarıdaki örnekte görüldüğü üzere 'Student' tablosu create ile döküman içerisinde oluşturulmuştur. Geçici tablolar oluşturulurken tablo isimlerinin başlangıcına diyez (#) eklenir. Diyez, tablo adına bitişik olmalıdır. Şimdi tablo içine insert ile veri kaydedelim.

 

INSERT

insert into #Student 
(FirstName, LastName, Department) 
 VALUES 
('Larry', 'Ellison', 'Software Engineer'),
('Mark', 'Zuckerberg', 'Computer Science & Engineering'),
('Stephen', 'Hawking', 'Physics')

Görüldüğü üzere SQL insert ile Student geçici tablosuna kayıt attık.

 

SELECT

select * from #Student
ID FirstName LastName Department
1 Larry Ellison Software Engineer
2 Mark Zuckerberg Computer Science & Engineering 
3 Stephen Hawking Physics

Klasik select SQL cümlesi ile tablomuz içerisindeki verileri elde ettik.

UPDATE

update #Student set FirstName = 'Lawrence Joseph' where ID = 1
ID FirstName LastName Department
1 Lawrence Joseph  Ellison Software Engineer
2 Mark Zuckerberg Computer Science & Engineering 
3 Stephen Hawking Physics

Update sorgusu ile ID=1 koşulunu sağlayan öğrencinin FirstName alanını güncelledik.

 

DELETE

delete FROM #Student where ID = 3
ID FirstName LastName Department
1 Lawrence Joseph  Ellison Software Engineer
2 Mark Zuckerberg Computer Science & Engineering 

Delete sorgusu ile ID=3 koşulunu sağlayan kullanıcıyı tablomuzdan sildik.

 

FOREIGN KEY TANIMLAMA

Geçici tablolarda sütunlar için foreign key tanımlanamaz. Foreign key oluşturmaya çalışıldığında aşağıdaki uyarı alırız.

Skipping FOREIGN KEY constraint 'FK_CourseAttached_StudentID' definition for temporary table. FOREIGN KEY constraints are not enforced on local or global temporary tables.

 


SONUÇ

Bu gönderi de elimden geldiğinde MSSQL de Geçici Tablolar Hakkında bilgi vermeye çalıştım. Gördüğünüz gibi kullandığımız sorgular SQL sorgularından başka bir şey değildir. Ancak unutulmaması gereken en önemli nokta şudur; üzerinde çalıştığınız döküman (Query Window) kapandığında, döküman içerisinde oluşturulan geçici tablolar ve tablolara ait veriler de kaybolur.

Herhangi bir sorunuz, eleştiriniz veya öneriniz varsa bu gönderinin altına yorum yapabilirsiniz veya buradan bana mesaj gönderebilirsiniz.


Sevgiyle Kalın


 Paylaş

 Yorumlar (0)

Bu gönderi için henüz yorum yapılmadı. İlk yorumu yapan sen ol.


 Yorum Yap

Bu gönderi hakkında sorularınızı, görüşlerinizi veya eleştirilerinizi benimle paylaşabilirsiniz. Email adresiniz kimseyle paylaşılmayacaktır.