Bu yazıda geçici tablo objelerini anlatacağım.
1. Lokal temp tablo, performansı kötüdür mevcut ve alt scope'larda geçerlidir, tempdb'de yaratılır
create table #Musteri (Id int, Ad varchar(20))
insert @Musteri select 1, 'Mehmet'
select * from tempdb.sys.tables where name like '#Musteri%'
2. Global temp tablo, performansı kötüdür tüm kullanıcılar erişebilir, tempdb'de yaratılır
create table ##Musteri (Id int, Ad varchar(20))
insert @Musteri select 1, 'Mehmet'
select * from tempdb.sys.tables where name = '##Musteri'
3. Tablo değişkeni, performansı çok iyi scope çok sınırlı memory'de yaratılır fakat garantisi yoktur tempdb'de de yaratılabilir. Sunucunuzda memory sıkıntısı yok ise her zaman bu obje kullanılmalı!
declare @Musteri table (Id int PRIMARY KEY CLUSTERED, Ad varchar(100) )
insert @Musteri select 1, 'Mehmet'
Burada tablo değişkeni kullanılamaz!
INSERT INTO @Musteri EXEC stored_procedure