Saya mencoba memasukkan semua nilai dari satu tabel ke yang lain. Tetapi pernyataan masukkan menerima nilai, tetapi saya ingin menerima * pilih * dari initial_Table. Apakah ini mungkin?
sumber
Saya mencoba memasukkan semua nilai dari satu tabel ke yang lain. Tetapi pernyataan masukkan menerima nilai, tetapi saya ingin menerima * pilih * dari initial_Table. Apakah ini mungkin?
Pernyataan insert sebenarnya memiliki sintaks untuk melakukan hal itu. Akan jauh lebih mudah jika Anda menentukan nama kolom daripada memilih "*":
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
Saya lebih baik mengklarifikasi ini karena beberapa alasan posting ini mendapatkan beberapa suara turun.
INSERT INTO ... SELECT FROM syntax adalah ketika tabel tempat Anda memasukkan ("new_table" pada contoh saya di atas) sudah ada. Seperti yang orang lain katakan, sintaks SELECT ... INTO adalah ketika Anda ingin membuat tabel baru sebagai bagian dari perintah.
Anda tidak menentukan apakah tabel baru perlu dibuat sebagai bagian dari perintah, jadi INSERT INTO ... SELECT FROM akan baik-baik saja jika tabel tujuan Anda sudah ada.
Coba ini:
sumber
Anda dapat menyisipkan menggunakan Sub-permintaan sebagai berikut:
sumber
Dari sini:
sumber
Anda bisa menggunakan
select into
pernyataan. Lihat lebih banyak di W3Schools .sumber
Ada cara yang lebih mudah di mana Anda tidak perlu mengetikkan kode apa pun (Ideal untuk Pengujian atau pembaruan satu kali):
Catatan - 1 : Jika kolom tidak dalam urutan yang benar seperti pada tabel Target, Anda selalu dapat mengikuti Langkah 2, dan Pilih Kolom dalam urutan yang sama seperti pada tabel Target
Catatan - 2 - Jika Anda memiliki kolom Identitas kemudian jalankan
SET IDENTITY_INSERT sometableWithIdentity ON
dan ikuti langkah-langkah di atas, dan pada akhirnya jalankanSET IDENTITY_INSERT sometableWithIdentity OFF
sumber
Jika Anda mentransfer banyak data secara permanen, yaitu tidak mengisi tabel temp, saya akan merekomendasikan menggunakan SQL Server Impor / Ekspor Data untuk pemetaan table-to-table.
Alat Impor / Ekspor biasanya lebih baik daripada SQL langsung ketika Anda memiliki konversi jenis dan kemungkinan pemotongan nilai dalam pemetaan Anda. Secara umum, semakin kompleks pemetaan Anda, semakin produktif Anda menggunakan alat ETL seperti Integration Services (SSIS) daripada SQL langsung.
Alat Impor / Ekspor sebenarnya adalah panduan SSIS, dan Anda dapat menyimpan pekerjaan Anda sebagai paket dtsx.
sumber
Saya pikir pernyataan ini mungkin melakukan apa yang Anda inginkan.
sumber
sumber