Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menyisipkan data dari satu kolom ke tabel lain

Alasan Anda mendapatkan kesalahan ini adalah karena admin_id bukan NULLABLE artinya Anda harus memiliki admin_id untuk setiap baris. Saat Anda melakukan INSERT Anda harus secara eksplisit memasukkan admin_id karena ini bukan IDENTITY kolom properti.

Hasil yang diharapkan menunjukkan bahwa Anda ingin melakukan UPDATE , bukan INSERT . UPDATE akan UPDATE admin_id saat ini di table_admin . Anda tabel alih-alih menyisipkan baris baru. Satu hal yang tidak jelas adalah bagaimana table_admin berhubungan dengan table_information . Bagaimana john mendapatkan admin_id = 1 ?

Setelah Anda menentukannya, berikut adalah UPDATE

update t 
set t.admin_name = i.admin_name
from table_admin t
inner join table_information i on i.someColumn = t.someColumn

Jika Anda tidak peduli dengan admin_name mendapatkan apa admin_id , lalu Anda dapat membuat kunci pengganti dan memperbarui tabel Anda. Ini akan terlihat seperti ini:

select distinct 
    admin_name
    ,admin_id = row_number() over (order by (select null))
into #tempInformation
from table_information

--this is going to show the admin_id that will be updated in the table_admin table
select * from #tempInformation

update t 
set t.admin_name = i.admin_name
from table_admin t
inner join #tempInformation i on i.admin_id = t.admin_id

EDIT

Jika Anda tidak memiliki apa pun admin_name saat ini diisi di table_admin maka saya sarankan Anda hanya memotong tabel itu dan memasukkan admin_name Anda yang berbeda . Sekali lagi, saya juga akan membuat admin_id properti identitas

truncate table table_admin

insert into table_admin (admin_id, admin_name)
   select distinct 
        admin_id = row_number() over (order by (select null))
        ,admin_name

Saya harus menyoroti bahwa di sebagian besar skema, admin_id akan berarti sesuatu. Ini akan menjadi PRIMARY KEY untuk tabel ini dan digunakan untuk menghubungkan tabel ini dengan yang lain dalam database. Jadi, tidak tahu yang mana admin_id pergi ke mana admin_name berarti Anda memiliki kekacauan nyata di tangan Anda dan menugaskannya secara acak harus memecah proses hilir ... tapi itu mungkin tidak terjadi karena Anda belum mempertahankannya sejak awal.

Saya akan bertanya mengapa? Ini akan menyinggung Anda memiliki pemetaan admin_name ke admin_id sudah ... tapi Anda belum menunjukkan itu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan Daftar Semua Kolom Null dan Bukan Null di Database SQL Server - Tutorial SQL Server / T-SQL Bagian 53

  2. ColdFusion 10/Windowns 7 Pro 64bit Verifikasi koneksi gagal untuk sumber data

  3. SqlConnection.Close() di dalam menggunakan pernyataan

  4. Perulangan T-SQL melalui kolom data XML untuk mendapatkan kumpulan jalur yang unik

  5. Kembalikan Informasi Kolom dari Server Tertaut di SQL Server (Contoh T-SQL)