2011-12-19 25 views
23

Say table1 ve table2 zaten mevcut * ..select içine yerleştirin bu sorgular arasındaki farkSQL Server 'select * içine' 'karşı

Sorgu1 vardır: -

select * into table1 from table2 where 1=1 

Query2: -

insert into table1 select * from table2 
+5

olası yinelenen http://stackoverflow.com/questions/6947983/insert-into-vs-select -into) ve birkaç diğerleri – gbn

cevap

41

select * into table1 from table2 where 1=1 tablo1 oluşturur ve bunlara tablo2 değerlerini ekler. Yani, tablo zaten oluşturulmuşsa, bu ifade bir hata verecektir.

insert into table1 select * from table2 yalnızca tablo2'deki değerleri tablo1'e ekler. sorgu2'nin olarak

+2

Tablo var olsaydı, sorgu-1 tarafından oluşturulan hatadan haberdar değildim. Çok teşekkür ederim ! –

7

yeni bir tablo ikinci (INSERT... SELECT) oluşturmak ve doldurmak ilk on (SELECT INTO) varolan bir tabloya ekler.

2008'den önce SQL Server sürümlerinde, ilk olarak en az günlüğe kaydedilmiş olabilir ve ikincisi this is no longer true değil.

3

, table1zorunluluk komutu sorgu1 olarak


, table1 oluşturulacak veya zaten yukarıda

4
select * into table1 from table2 where 1=1 

sorgu varsa bir hata atılacaktır çalıştırmadan önce mevcut tablo Tablo mevcut DEĞİLDİR. Tüm sütunlar kaynak tablodan alındıkça oluşturulduğu için sütun belirtmeniz gerekmez. Yukarıdaki sorgu için

insert into table1 select * from table2 

, bir MEVCUT table1 gerekir. Her iki tablonun sütunları da tam olarak aynı sırada olmalıdır, aksi halde iki tablo için bir sütun listesi sağlamanız gerekir.

1
INSERT INTO TABLE_A SELECT * FROM TABLE_B 

Bir tablonun değerlerini başka bir tabloya eklemek için kullanılan yaygın olarak kullanılan bir cümledir. Bunu kullanarak seçilen sütunlar da eklenebilir.

SELECT * INTO TABLE_A FROM TABLE_B 

TABLE_B değerlerine doldurulan yeni TABLE_A yaratacaksınız

[SELECT INTO vs INSERT INTO] (içinde