SORU
21 Mayıs 2009, PERŞEMBE


SQL Server 2005 ve geçici tablo kapsamı

Geçici tablolar ve kapsam konu çevresinde okudum ve ben gördüğüm tüm cevaplar benim endişeleri hakkında konuşmak pek yok.

Yerel geçici tablo kapsamı sadece geçerli bir saklı yordam veya çocuk saklı yordamları ömrü içinde olduğunu anlıyorum. Ancak ne ilgili durum concurency. Yani eğer ben bir saklı yordam geçici bir tablo oluşturur çağrılan iki farklı süreçler değil, aynı zamanda kullanıcı/bağlantı dize getirecek geçici tablo arasında paylaşılan iki aramalar için bir saklı yordam veya olacak bir durum her arama için saklı yordam oluşturur benzersiz bir geçici tablo örneği.

Geçici tablo saklı procdure çağrısı kapsamında ait olduğu varsayılabilir ama bu yola gitmeden önce emin olmak istiyorum.

CEVAP
21 Mayıs 2009, PERŞEMBE


Yerel geçici tablolar (#ile başlayan) oturumunuz; diğer oturumlar bile/bağlantı dizesi aynı kullanıcının, onları görmüyor. sınırlıdır Ömrü boyunca kuralları yerel geçici tablo, bir saklı yordam oluşturulmuş olmasına bağlıdır.

  • Bir saklı yordam oluşturulan yerel geçici tablo yordamı bittiğinde bırakılır; diğer saklı yordamları veya arama işlemi, onları görmüyor.
  • Diğer yerel geçici tablolar oturumu sona bırakılır.

Genel geçici tablolar (başlangıç ##) oturumlar arasında paylaşılır. Ne zaman düştü:

  • Onları yaratan oturumu sona erer
  • VE başka bir oturum için yönlendiriyordur

Bu komut, geçici tablolar var görmek için kullanışlı olabilir:

select TABLE_NAME from tempdb.information_schema.tables

Ve bu onların var eminsen değil kullanışlı geçici tabloları bırakmak için:

if object_id('tempdb..#SoTest') is not null drop table #SoTest

Bu daha fazla bilgi için MSDN article bkz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • metagamers

    metagamers

    13 Mayıs 2006
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006