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


 Share

 Comments (0)

There are no comments for this post yet. Be the first to comment.


 Leave a Comment

You can share your questions, comments or criticisms about this post with me. Your e-mail address will not be shared with anyone.