Kayıt Tarihi: 19.07.2012
Toplam 3 konu açtı.
Toplam 5 yorum yaptı.
Toplam
0
puanı bulunmakta.
Mevcut Office Sürümü:
Office 2007 TR,
Beğeniler: 0 / 0
Arkadaşlar oracle de veya SQL de tabloda olmayan fakat sanal olarak göstere bilceğimiz bir sql sorgusu yaratma kodlarını istiyorum .
Şöyle açıklayayım :
elimizde bir veritabanı var bu veri tabanınında vize final olanlarımız var istediğim şu ;
notu 70 den yukarı ise geçti aşağı ise kaldı fakat tablomuzda da yazdırmıyacağız sadece göstermek için . Galiba bunu AS komutu ile yapılıyor nasıl yapılıyor bilmiyorum yardım edebilen arkadaşlar varsa çok sevinirim
Kayıt Tarihi: 03.11.2012
Toplam 13 konu açtı.
Toplam 35 yorum yaptı.
Toplam
0
puanı bulunmakta.
Mevcut Office Sürümü:
Office 2007 TR,
Beğeniler: 0 / 0
MS SQL Server'da Geçici Tablo Kullanımı (Temporary Table ve Table Variable)
SQL Server ile iki türde geçici tablo oluşturma imkanımız mevcuttur.
Birinci yöntem olarak geçici tabloları (Temporary tables)
İkinci yöntem olarakta değişken tablolar (Table variables) kullanabiliriz.
Bu iki yöntemin diğerine göre avantajlı ve dezavantaı yönleri bulunmaktadır. Şimdi kısaca bu iki yönteme göz atalım.
Geçici Tablolar (Temporary Tables)
Temel olarak bakarsak geçici tabloların kullandığımız normal tablolardan başlıca farkı sistem veritabanlarından olan Tempdb'de tutuluyor olmasıdır. Kullandığımız tablonun geçici olduğunu SQL Server'a bildirmek için tablo adından önce "#" işareti yazmamız gerekmektedir. Basit olarak bir geçici tabloyu aşağıdaki örneklerdeki gibi oluşturabiliriz. (Tablo isminden önce gelen "#" işaretine dikkat ediniz)
CREATE TABLE #Urunler_Tmp(
[UrunID] [int],
[KategoriID] [int],
[UrunAdi] [varchar](150),
[Siralama] [int])
SELECT * INTO #Urunler_Tmp FROM Urunler
Dilerseniz normal tablolarda olduğu gibi geçici tablolarda da indeks oluşturabilir identity alan tanımlayabilirsiniz.
Herhangi bir uygulamadan (Windows, web, mobil v.b.) SQL Server'a bağlandığımız zaman her bağlantı için SQL Server bir oturum (Session) açar. Geçici tablolara sadece oluştutuldukları oturumdan ulaşılabilir. Eğer oluşturulan geçici tablolara diğer oturumlardan (uygulamalardan) erişilmesi isteniyorsa genel geçici tablo (Global temporary tables) kullanmamız gerekmektedir. Genel geçici tabloları SQL Server'a bildirmek için tablo adından önce "##" işareti yazmamız gerekmektedir. Geçici tabloların (#) tüm özellikleri genel geçici tablolar (##) içinde aynıdır.
Geçici tabloları kullanımımız bittikten sonra silmek iyi bir alışkanlıktır. Fakat silmezsek SQL Server oluşturduğumuz geçici tabloyu oturumumuz kapandıktan sonra kendisi silecektir.
DROP TABLE #Urunler_Tmp
Değişken Tablolar (Table Variables)
Değişken tablolar yapı olarak geçici tablolara benzerler fakat geçici tablolardan farklı olarak bir kısmı tempdb'de bir kısmı ise SQL Server olarak kullandığımız sunucunun belleğinde (memory) tutulurlar. Yaygın ve yanlış olarak bilinen değişken tabloların sadece bellekte tutulduğudur. Oysa bu tabloların bir kısmı bellekte bir kısmı ise disk üzerinde depolanır. Örnek olarak bir geçici tabloyu aşağıdaki gibi oluşturabiliriz. (Tablo isminden önce gelen "@" işaretine dikkat ediniz)
DECLARE @Urunler_Tmp TABLE (
[UrunID] [int],
[KategoriID] [int],
[UrunAdi] [varchar](150),
[Siralama] [int])
* Değişken tablolara erişim geçici tablolara göre daha hızlı olmaktadır fakat değişken tablo içerisinde fazla miktarda veri tutmak sunucunun belleğini dolduracağı için performans kayıplarına yol açabilir.
* Değişken tablolar, kullanıcı tanımlı fonksiyonlar (User Defined Functions) içinde kullanılabilirken, geçici tabloların UDF içinde kullanımı mümkün değildir.
* Stored procedure'ler içerisinde ise hem geçici tabloları hem de değişken tabloları kullanabiliriz.
* Geçici tablolar üzerinde indeks tanımlayabiliriz fakat değişken tablolarda indeks tanımlayamayız.
* Değişken tablolar sadece SQL Server 2000 ve daha üst versiyonlarında kullanılabilir.
* Değişken tablolar kullanıldıkları prosedür, fonksiyon yada scope dışına çıkıldığında SQL Server tarafından silinir, ayrıca drop edilmelerine gerek yoktur.
* Geçici tablolar SELECT * INTO #Urunler_Tmp FROM Urunler örneğinde olduğu gibi oluşturulabilirken, değişken tablolar bu şekilde oluşturulamaz.
* Değişken tablolar truncate edilemez.
*Değişken tablolar tanımlandıktan sonra (declare) alter table ile düzenlenemez.