Saya memiliki dua tabel yang identik dan perlu menyalin baris dari tabel ke tabel lain. Apa cara terbaik untuk melakukannya? (Saya hanya perlu menyalin beberapa baris secara terprogram, saya tidak perlu menggunakan utilitas penyalinan massal).
Jawaban:
Selama tidak ada kolom identitas Anda bisa saja
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]
SET IDENTITY_INSERT < table > ON(dan SET IDENTITY_INSERT < table > OFF) untuk menonaktifkan sementara kolom identitas pada tabel yang Anda coba masukkan. Bekerja untuk saya mencoba memulihkan beberapa catatan yang hilang di tengah kumpulan data.
Sintaks alternatif:
INSERT tbl (Col1, Col2, ..., ColN)
SELECT Col1, Col2, ..., ColN
FROM Tbl2
WHERE ...
Kueri pemilihan dapat (tentu saja) menyertakan ekspresi, pernyataan kasus, konstanta / literal, dll.
Jawaban Jarrett membuat tabel baru.
Jawaban Scott dimasukkan ke dalam tabel yang sudah ada dengan struktur yang sama.
Anda juga dapat memasukkan ke dalam tabel dengan struktur berbeda:
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...
bekerja di SQL Server
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >
SELECT * INTO [SQLTEST].[dbo].[EMPLOYEES] FROM [SQLPROD].[dbo].[EMPLOYEES]