MS-SQL 2012 üzerinde 2 şekilde sorgu sonuçları temp bir tabloya yazılabilir.
1- Değişken tanımlıyoruz, insert kodu ile sorgu sonucunu otomatik ekliyoruz ve geçici tablo içine kayıtlar ekleniyor.
1 2 3 4 5 6 7 |
go declare @temp table (Id bigint, name nvarchar(max)) insert into @temp ( _Id,_name)(select Id,name from kisiler) select * from @temp |
2- MS SQL in “into #” operatörünü kullanarak , geçici tablo veri ile dolduruluyor. Bu temp tablo sadece aktif bağlantıda erişilebilir. Kullanıcı kendi açtığı temp tabloyu okuyabilir. Açan kullanıcı bu tabloyu normal tablo gibi klasik yöntemlerle sorgulayabilir, silebilir, güncelleyip veri ekleyebilir hatta drop ve truncate edebilir (tablo başında # unutulmadan)
1 2 3 4 5 6 7 |
go IF exists(select top 1 * from kisiler) DROP TABLE #Temp_tablo; select Id into #temp_tablo from kisiler select * from #temp_tablo |
3- MS SQL in “into ##” çift diyez operatörünü kullanarak, geçici tablo global olarak açılır ve tüm diğer kullanıcılar bu tabloyu normal tablo gibi klasik yöntemlerle sorgulayabilir, silebilir, güncelleyip veri ekleyebilir hatta drop ve truncate edebilir (tablo başında ## unutulmadan)
1 2 3 4 5 6 7 |
go IF exists(select top 1 * from kisiler) DROP TABLE ##temp_tablo; select Id into ##temp_tablo from kisiler select * from ##temp_tablo |
Not : Temp tabloları kullanırken Ram e bindireceğiniz yüke dikkat etmelisiniz. Yani Milyonlarca kayıtı arabelleğe alırken sistemi down etmeyin 🙂 Dikkat..