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

Menyisipkan baris ke dalam tabel dengan satu kolom IDENTITAS saja

Jika Anda memiliki satu kolom yang merupakan IDENTITAS, lakukan saja

INSERT MyTable DEFAULT VALUES;  --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();

Jika Anda tidak memiliki identitas, apakah Anda dapat mengaturnya? Ini adalah cara terbaik.. dan gunakan SQL di atas.

Jika tidak, Anda ingin menyisipkan baris baru

INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable

Catatan:

  • Di bawah beban tinggi, solusi MAX mungkin gagal dengan duplikat
  • SCOPE_IDENTITY setelah faktanya, tidak sebelumnya
  • SCOPE_IDENTITY hanya berfungsi dengan kolom IDENTITY. Samakan semua kebodohan menggunakan IDENT_CURRENT
  • Klausa keluaran menggantikan SCOPE_IDENTITY untuk solusi MAX


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengubah string yang Dipisahkan Koma menjadi baris individual

  2. Mengatasi SQL Server Database Terjebak dalam Masalah Mode Tersangka Secara Efisien

  3. Bagaimana cara mengekspor data sebagai format CSV dari SQL Server menggunakan sqlcmd?

  4. Pengelompokan SQL berdasarkan bulan dan tahun

  5. Microsoft SQL Server 2005/2008:XML vs tipe data teks/varchar