Geçici Tablo ve Tablo Kopyalama

Veritabanı üzerinde geçici bir süre ek tablolara ihtiyaç duyulabilir. T-SQL ile geçici tablolar oluşturabiliriz. Böylece geçici tablolar üzerinde denemek istediğimiz her türlü sorgulamayı uygulayıp sonuçlarını görebilir çıkan sonuçlara göre gerçek tablolarımızda sorguyu çalıştırabiliriz. Bir çeşit deneme tahtası diyebiliriz. Böylece olası bir yanlış sorgulamadan gerçek tablomuzun etkilenmeyecektir.Bu tabloları çok fazla veri içeren veritabanlarını sadeleştirmek içinde kullanabiliriz. Daha önceden bahsettiğimiz view‘lere benzesede view‘de yaptığımız işlemler gerçek tablolarımızı etkilerken geçici tablolarda ki işlemler etkilemez.Geçici tablolar başına ‘#‘ işareti konularak tanımlanır. Bu şekilde tanımlanan geçici tablolar sadece geçerli olan query ve oturumda erişilir. Başına ‘##‘ konulup tanımlanan tablolar ise global olup başka oturumlar üzerinde de erişilebilir.

Select into komutu ile bir tabloyu diğer bir tabloya kopyalayabiliriz. Kopyalanan tablo asıl tablodan bağımsızdır. Yedek tabloda yapılan değişiklikler sadece kendisini ilgilendirir.

create table #Chief    --Geçici tablomuzu oluşturduk.
(
	ChiefId int,
	ChiefName nvarchar(20),
	ChiefLastName nvarchar(20),
	GSM nvarchar(11)
)

insert into #Chief (ChiefId,ChiefLastName,ChiefName,GSM) select ChiefId,ChiefLastName,ChiefName,GSM from Chief --yukarıda oluşturduğumuz geçici tablomuza, veritabanımızda olan asıl chief table'ı attık.

select * from #Chief

drop table #Chief --tablomuzu sildik.

--select into: Tablo kopyalama

create table #Chieef
(
	ChiefId int,
	ChiefName nvarchar(20),
	ChiefLastName nvarchar(20),
	GSM nvarchar(11)
)
--yukarıda insert komutuyla gerçek tablomuzdan, geçici tablomuza verileri atmış olduk. Bu işlemi tabloları birbirine kopyalarak da yapabiliriz.
--Tabi veri tiplerinin tutarlı olması gerekmektedir.

select * into #Chieef from Chief                                -- Bu şekilde tüm verileri kopyaladık.
drop table #Chieef
select ChiefName,ChiefLastName into #Chieef from Chief          --Burada sadece Name ile LastName sütunlarını kopyaladı

update #Chief set ChiefName ='Alper' where ChiefLastName='Yeşil'--Geçici tablomuz üzerinde her türlü CRUD işlemini yapıp,deneyebiliriz.
select * from #Chief                                            --#Chief tablosunu görüntüledik

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir