Ben # işaretini kullanarak geçici bir tablo oluşturursanız:Geçici tablolar nerede bulunur?
SELECT * INTO #temp FROM dbo.table
bu tablo bulunur? Bunu tempdb'den bulamıyorum.
Ben # işaretini kullanarak geçici bir tablo oluşturursanız:Geçici tablolar nerede bulunur?
SELECT * INTO #temp FROM dbo.table
bu tablo bulunur? Bunu tempdb'den bulamıyorum.
Bu tablolar tempDB
içinde oluşturulmuştur - ancak tablo adı tam olarak tanımladığınız gibi olmayabilir. Benim durumumda
, alıyorum:
#temp______________________________000000000003
bu deneyin:
SELECT * INTO #temp FROM dbo.table
SELECT * FROM tempdb.sys.tables
Sen yeni oluşturduğunuz bu geçici tablo için bir giriş görmelisiniz
....
Geçici bir tablo bildirdiğinizde, SQL Sever, adına benzersiz bir sistem adı sağlamak için adında bazı ek karakterler ekler ve daha sonra tempDB öğesinde saklar. e sysobjects tablosu. Geçici tabloyu mantıksal adıyla sorgulamanıza rağmen, dahili olarak SQL Server'ın belirlediği kesin adla bilinir.
Onları nasıl arıyorsunuz? Seçerseniz, verileri alırsınız. Ancak tablo sadece oturumda, sadece onu yaratan kullanıcı için kullanılabilir (global temp tablolarına sahip olabilirsiniz).
Bunlar temp db'de depolanır.
Yerel ad tabloları, tablo adından önce hash (#) işareti kullanılarak oluşturulabilir.
Yalnızca geçerli bağlantıda görünürler. Bağlantı bırakıldığında kapsamı da sona eriyor.
Aynı adda yerel geçici tabloyu aynı anda iki farklı bağlantıda oluşturmak ve kullanmak mümkündür.
Devamı
http://sqlnetcode.blogspot.com/2011/11/there-is-already-object-named-temp-in.html
Ve varoluş için, diyelim ki, test etmek ... OBJECT_ID ('Tempdb .. # sıcaklığı') – gbn