MSSQL DE GEÇİCİ (TEMPORARY) TABLO İŞLEMLERİ

Microsoft SQL Server Backup Diagram

MsSQL de bir işlemi yapmak için veritabanında yeni bir table oluşturmadan geçici tablolar oluşturarak yapabiliriz. Açıldığı döküman içerisinde kullanılan bu geçici tablolar çoğu zaman büyük kolaylıklar sağlar. Döküman kapandıktan sonra geçici tabloya ait bütün veriler de kaybolur. Hiçbir şekilde 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 admin olmanıza veya veritabanı admininiz 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
)

Geçici tabloların başına görüldüğü üzere hash tag eklenir. Hash tag, tablo adına bitişik olmalıdır. Yukarıdaki örnekte görüldüğü üzere 'Student' tablosu create ile döküman içerisinde oluşturulmuştur. Ş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 normal bir sql insert cümlesi 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

Update sorgusu ile ID=1 koşulunu sağlayan öğrencinin FirstName alanını güncelledik. Tablomuzun şu anki hali aşağıdaki gibidir:

ID
FirstName
LastName
Department
1
Lawrence Joseph
Ellison
Software Engineer
2
Mark
Zuckerberg
Computer Science & Engineering
3
Stephen
Hawking
Physics


Delete

delete FROM #Student where ID = 3

Delete sorgusu ile ID=3 koşulunu sağlayan kullanıcıları tablomuzdan sildik. Tablomuzun şu anki hali aşağıdaki gibidir:

ID
FirstName
LastName
Department
1
Lawrence Joseph
Ellison
Software Engineer
2
Mark
Zuckerberg
Computer Science & Engineering


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

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

Bu gönderi de elimden geldiğinde geçici tablolar hakkında bilgi vermeye çalıştım. 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 kapandığında, döküman içerisinde oluşturulan geçici tablolar da kaybolur.

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

Bu gönderiyi paylaşın


Yorumlar (0)

Yorum Yapın