2010-04-22 23 views
14

Varolan tablomdan bir tanesinde varolan başka bir tabloya veri eklemeye çalışıyorum."tabloya * seçimi" Mevcut tabloya veri eklemek için işe yarayacak

select * into sorgusunu kullanarak mevcut herhangi bir tabloya veri eklemek mümkün mü? Sanırım birliği kullanarak yapılabilir ama bu durumda mevcut tablonun tüm verilerini geçici tabloya kaydetmem, sonra o tabloyu bırakmam ve nihayet tüm kayıtları aynı tabloya ekleyebilmek için sendikayı uygulamaktan daha iyidir.

select * into #tblExisting from tblExisting 
drop table tblExisting 
select * into tblExisting from #tblExisting union tblActualData 

İşte tblExisting Aslında tblActualData veri tblExisting eklenecek olan yerden tablodur tüm verileri depolamak istediğiniz tablodur.

Doğru yöntem midir? Başka alternatifimiz var mı?

+0

İlgili: http://stackoverflow.com/questions/4101739 –

cevap

4

Hayır göz at denemelisiniz, varolan bir tabloya veri eklemek için SELECT INTO kullanamazsınız.

documentation bu çok net yapar:

SEÇ ... INTO varsayılan dosya grubu bir yeni tablo oluşturur ve içine sorgulamasından elde edilen satırları ekler.

Genellikle size tablo yaratılır şekli üzerinde çok az kontrol sağlar çünkü üretimde SELECT INTO kullanmaktan kaçınmak istiyor ve pis kilitleme ve diğer performans sorunları her türlü yol açabilir. Şemaları açıkça oluşturmalı ve INSERT - geçici tablolar için bile kullanmalısınız.

0

@Ryan Chase Bunu kullanarak tüm sütunları seçerek yapabilir misiniz? Evet!

INSERT INTO yourtable2 SELECT * FROM yourtable1

+0

Bu, soruya bir yanıt vermez. Bir cevap bulmak için [benzer soruları arayın] (// stackoverflow.com/search) sayfasına gidebilir veya sayfanın sağ tarafındaki ilgili ve bağlantılı sorulara başvurabilirsiniz. İlgili ancak farklı bir sorunuz varsa, [yeni bir soru sorun] (// stackoverflow.com/questions/ask) ve bağlam sağlamaya yardımcı olacak bir bağlantı ekleyin. Bakın: [Soru sorun, cevap alın, dikkat dağınıklığı yok] (// stackoverflow.com/tour) – Bugs

İlgili konular