İki özdeş tablom var ve satırları tablodan diğerine kopyalamam gerekiyor. Bunu yapmanın en iyi yolu nedir? (Programlı olarak sadece birkaç satırı kopyalamam gerekiyor, toplu kopyalama yardımcı programını kullanmam gerekmiyor).
Yanıtlar:
Kimlik sütunları olmadığı sürece sadece
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]
SET IDENTITY_INSERT < table > ON
(ve SET IDENTITY_INSERT < table > OFF
) kullanabilirsiniz . Veri kümesinin ortasında birkaç eksik kaydı geri yüklemeye çalışırken benim için çalıştı.
Alternatif sözdizimi:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
Seçme sorgusu (elbette) ifadeleri, durum ifadelerini, sabitleri / değişmezleri vb. İçerebilir.
Jarrett'ın cevabı yeni bir tablo oluşturur.
Scott'ın cevabı aynı yapıya sahip mevcut bir tabloya eklenir.
Farklı yapıdaki bir tabloya da ekleyebilirsiniz:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
SQL Server'da çalışır
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >
SELECT * INTO [SQLTEST].[dbo].[EMPLOYEES] FROM [SQLPROD].[dbo].[EMPLOYEES]