2011-07-10 18 views
24

i geçici tablo değişkeni bir masa ve ekleme sonuca seçme deyimi kullanın istiyorum, ama sütunlu geçici tablo beyan yoktur ve ben böyle kullanmak istiyorum:* INTO [tmp tablosu], bildirim tablosu olmadan nasıl seçilir?

Declare #tmp table; 

SELECT * INTO #tmp FROM myTable 

bu sütunları ve verileri bildirmek istiyorum Neyse sadece @ tablo değişkenleri #temp tabloları için geçerli değil - #tmp

için tipleri

beni

+0

Seç'in, tablonun gerçek bir kopyası olmadığını unutmayın. Örneğin bir kimlik sütununuz varsa, bu özellik korunur, ancak diğer tablo özellikleri ve nesneleri (dizinler, kısıtlamalar, tetikleyiciler, vb.) Kopyalanmaz. –

cevap

30

sadece BILDIRMEK komutu olmadan yapabilirsiniz yardım edin.

select * 
into #tmp 
from myTable 

Veri yok: BTW

select * 
into #tmp 
from myTable 
where 0=1 

, sen bunu yapamaz verileriyle

SELECT * INTO #tmp FROM myTable; 
+0

teşekkürler Aaron, ama bu şekilde sys tablolarda bir tablo oluşturun –

+0

Öyleyse, tempdb.sys.tables dosyasında bir giriş oluşturmadan #temp tablosu nasıl oluşturulacağını soruyorsunuz? Neden umurunda? Neyse, tempdb.sys.tables içinde bir satır oluşturmadan #temp tablo (veya @table değişken) oluşturamazsınız. –

+0

ohhh, evet. sağol Aaron. Ben elle temp tabloya karar verdim –

25

: İlk #tmp tanımlamak için çalışıyor olmadan sadece aşağıdaki denedin mi Tablo değişkenleri ile. Tablo değişkenlerinin sütunlarla bildirilmesi gerekmektedir.

+4

+1 tablo. –

+0

@Aaron - Ve sizden doğru cevapla ilk olmanız için benden bir tane aldınız :) –

+0

Sadece 3 saniyeliğine seni dövsem de mi? :-) –