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

Bagaimana cara menambahkan identitas ke kolom di SQL Server?

Anda tidak bisa tambahkan IDENTITY ke kolom yang ada. Itu tidak bisa dilakukan.

Anda harus membuat baru kolom tipe INT IDENTITY dan kemudian lepaskan kolom lama yang tidak Anda perlukan lagi (dan mungkin ganti nama kolom baru dengan nama lama - jika diperlukan)

Juga:Saya tidak lakukan ini di desainer visual - ini akan mencoba membuat ulang tabel dengan struktur baru, salin semua data (semua 10 juta baris), lalu lepaskan tabel lama.

Jauh lebih efisien menggunakan pernyataan T-SQL langsung - ini akan melakukan pembaruan "di tempat", tidak merusak (tidak ada data yang hilang), dan tidak perlu menyalin sekitar 10 juta baris dalam proses...

ALTER TABLE dbo.YourTable
  ADD NewID INT IDENTITY(1,1) NOT NULL

Saat Anda menambahkan kolom baru dengan jenis INT IDENTITY ke meja Anda, maka secara otomatis akan diisi dengan nomor berurutan. Anda tidak dapat menghentikan hal ini terjadi, dan Anda juga tidak dapat memperbarui nilainya nanti.

Tak satu pun dari opsi tersebut yang benar-benar berguna, pada akhirnya - Anda mungkin mendapatkan nilai ID yang berbeda.... untuk melakukannya dengan benar, Anda harus:

  • buat tabel baru sebelumnya, dengan struktur yang tepat dan IDENTITY sudah ada
  • lalu aktifkan SET IDENTITY_INSERT (yourtable) ON pada tabel tersebut untuk memungkinkan nilai dimasukkan ke dalam kolom identitas
  • salin data ini dari sumber aslinya
  • matikan lagi sisipan identitas:SET IDENTITY_INSERT (yourtable) OFF

Hanya dengan pendekatan ini Anda bisa mendapatkan ID yang sama di kolom IDENTITY di tabel baru Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Sertakan NULL menggunakan UNPIVOT

  2. Konversi 'datetime' menjadi 'date' di SQL Server (Contoh T-SQL)

  3. di sql server cara mendapatkan nilai kolom dengan ` ` terpisah

  4. Contoh kehidupan nyata, kapan harus menggunakan OUTER / CROSS APPLY dalam SQL

  5. Kembali Pilih Pernyataan sebagai HTML yang diformat