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ş
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.
Yorumlar (0)
Bu gönderi için henüz yorum yapılmadı. İlk yorumu yapan sen ol.