Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thêm danh tính vào cột hiện có

Bạn không thể thay đổi các cột hiện có cho danh tính.

Bạn có 2 lựa chọn,

  1. Tạo bảng mới với danh tính và bỏ bảng hiện có

  2. Tạo một cột mới với danh tính và bỏ cột hiện có

Phương pháp tiếp cận 1. ( Bảng mới ) Tại đây bạn có thể giữ lại các giá trị dữ liệu hiện có trên cột nhận dạng mới được tạo. Lưu ý rằng bạn sẽ mất tất cả dữ liệu nếu "nếu không tồn tại" không được thỏa mãn, vì vậy hãy đảm bảo rằng bạn cũng đặt điều kiện từ bỏ!

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'

Phương pháp tiếp cận 2 ( Cột mới ) Bạn không thể giữ lại các giá trị dữ liệu hiện có trên cột nhận dạng mới được tạo, Cột nhận dạng sẽ chứa chuỗi số.

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'

Xem bài đăng sau trên Diễn đàn Microsoft SQL Server để biết thêm chi tiết:

Cách thay đổi cột thành danh tính (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. So sánh các kế hoạch thực thi trong SQL Server

  2. Thay đổi ngôn ngữ mặc định của đăng nhập trong SQL Server

  3. Sử dụng TYPEPROPERTY () để trả về thông tin về kiểu dữ liệu trong SQL Server

  4. Cách sao lưu cơ sở dữ liệu SQL Server bằng T-SQL

  5. Lệnh SUBSTRING trong SQL:A Primer