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

Menambahkan identitas ke kolom yang ada

Anda tidak dapat mengubah kolom identitas yang ada.

Anda memiliki 2 opsi,

  1. Buat tabel baru dengan identitas &jatuhkan tabel yang ada

  2. Buat kolom baru dengan identitas &jatuhkan kolom yang ada

Pendekatan 1. (Tabel baru ) Di sini Anda dapat mempertahankan nilai data yang ada pada kolom identitas yang baru dibuat. Perhatikan bahwa Anda akan kehilangan semua data jika 'jika tidak ada' tidak terpenuhi, jadi pastikan Anda meletakkan kondisi di drop juga!

CREATE TABLE dbo.Tmp_Names
    (
      Id int NOT NULL
             IDENTITY(1, 1),
      Name varchar(50) NULL
    )
ON  [PRIMARY]
go

SET IDENTITY_INSERT dbo.Tmp_Names ON
go

IF EXISTS ( SELECT  *
            FROM    dbo.Names ) 
    INSERT  INTO dbo.Tmp_Names ( Id, Name )
            SELECT  Id,
                    Name
            FROM    dbo.Names TABLOCKX
go

SET IDENTITY_INSERT dbo.Tmp_Names OFF
go

DROP TABLE dbo.Names
go

Exec sp_rename 'Tmp_Names', 'Names'

Pendekatan 2 (Kolom baru ) Anda tidak dapat mempertahankan nilai data yang ada pada kolom identitas yang baru dibuat, Kolom identitas akan menyimpan urutan nomor.

Alter Table Names
Add Id_new Int Identity(1, 1)
Go

Alter Table Names Drop Column ID
Go

Exec sp_rename 'Names.Id_new', 'ID', 'Column'

Lihat posting Forum Microsoft SQL Server berikut untuk detail selengkapnya:

Cara mengubah kolom menjadi identitas(1,1)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat diagram hubungan tabel dari skema yang ada (SQL Server)

  2. Menambahkan petunjuk kueri saat memanggil Fungsi Bernilai Tabel

  3. Apakah ada cara untuk mengambil definisi tampilan dari SQL Server menggunakan ADO biasa?

  4. Menggunakan INSERT INTO dari SQL Server Untuk Mengubah Data Salesforce

  5. Bagaimana cara menghapus aksen dan semua karakter <> a..z di sql-server?