Saya memiliki basis data yang disebut foo dan basis data yang disebut bar. Saya punya tabel di foo bernama tblFoobar yang ingin saya pindahkan (data dan semua) ke bilah basis data dari basis data foo. Apa pernyataan SQL untuk melakukan ini?
Saya memiliki basis data yang disebut foo dan basis data yang disebut bar. Saya punya tabel di foo bernama tblFoobar yang ingin saya pindahkan (data dan semua) ke bilah basis data dari basis data foo. Apa pernyataan SQL untuk melakukan ini?
Jawaban:
Di SQL Server? dan pada server database yang sama? Gunakan penamaan tiga bagian.
INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar
Ini hanya memindahkan data. Jika Anda ingin memindahkan definisi tabel (dan atribut lainnya seperti izin dan indeks), Anda harus melakukan sesuatu yang lain.
Tugas "Impor Data" SQL Server Management Studio (klik kanan pada nama DB, lalu tugas) akan melakukan sebagian besar untuk Anda. Jalankan dari basis data yang ingin Anda salin.
Jika tabel tidak ada, itu akan membuatnya untuk Anda, tetapi Anda mungkin harus membuat ulang indeks apa pun dan semacamnya. Jika tabel memang ada, itu akan menambahkan data baru secara default tetapi Anda dapat menyesuaikan itu (edit pemetaan) sehingga akan menghapus semua data yang ada.
Saya menggunakan ini sepanjang waktu dan bekerja dengan cukup baik.
WHERE
kondisi menggunakan tugas Impor Data? Saya tidak dapat menemukan cara untuk melakukannya.
Ini seharusnya bekerja:
SELECT *
INTO DestinationDB..MyDestinationTable
FROM SourceDB..MySourceTable
Itu tidak akan menyalin batasan, standar atau indeks. Tabel yang dibuat tidak akan memiliki indeks berkerumun.
Atau Anda bisa:
INSERT INTO DestinationDB..MyDestinationTable
SELECT * FROM SourceDB..MySourceTable
Jika tabel tujuan Anda ada dan kosong.
INSERT INTO...
) bekerja untuk saya di Oracle.
Jika hanya satu meja maka yang perlu Anda lakukan adalah
Satu hal yang harus Anda pertimbangkan adalah pembaruan lain seperti memigrasi objek lain di masa mendatang. Perhatikan bahwa tabel sumber dan tujuan Anda tidak memiliki nama yang sama. Ini berarti Anda juga harus melakukan perubahan jika Anda bergantung pada objek seperti tampilan, prosedur tersimpan, dan lainnya.
Sedikit pun satu atau beberapa objek Anda dapat pergi secara manual tanpa masalah. Namun, ketika ada lebih dari beberapa pembaruan, alat perbandingan pihak ke-3 sangat berguna. Saat ini saya menggunakan ApexSQL Diff untuk migrasi skema tetapi Anda tidak dapat salah dengan alat lain di luar sana.
Script create table
di studio manajemen, jalankan script di bar untuk membuat tabel. (Klik kanan tabel pada objek explorer, skrip table as, create to ...)
INSERT bar.[schema].table SELECT * FROM foo.[schema].table
SET IDENTITY_INSERT TblName ON
dalam kasus itu.
Anda juga dapat menggunakan Wisaya pembuatan skrip SQL Server untuk membantu memandu pembuatan skrip SQL yang dapat melakukan hal berikut:
Alur kerja contoh yang bagus untuk SQL Server 2008 dengan cuplikan layar ditampilkan di sini .
Anda dapat menggunakan cara ini: (contoh umum)
insert into QualityAssuranceDB.dbo.Customers (columnA, ColumnB)
Select columnA, columnB from DeveloperDB.dbo.Customers
Juga jika Anda perlu membuat nama kolom juga untuk memasukkan klausa penyisipan, gunakan:
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName')
Salin hasil dan tempel ke jendela permintaan untuk mewakili nama kolom tabel Anda dan bahkan ini akan mengecualikan kolom identitas juga:
select (name + ',') as TableColumns from sys.columns
where object_id = object_id('YourTableName') and is_identity = 0
Ingat skrip untuk menyalin baris akan berfungsi jika database milik lokasi yang sama.
Anda bisa Coba Ini.
select * into <Destination_table> from <Servername>.<DatabaseName>.dbo.<sourceTable>
Nama server adalah opsional jika kedua DB berada di server yang sama.
Salin Data
INSERT INTO Alfestonline..url_details(url,[status],recycle)
SELECT url,status,recycle FROM AlfestonlineOld..url_details