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

Làm cách nào để cập nhật Cột danh tính trong SQL Server?

Bạn không thể cập nhật cột danh tính.

SQL Server không cho phép cập nhật cột nhận dạng không giống như những gì bạn có thể làm với các cột khác bằng câu lệnh cập nhật.

Mặc dù có một số lựa chọn thay thế để đạt được một loại yêu cầu tương tự.

  • Khi giá trị cột Danh tính cần được cập nhật cho các bản ghi mới

Sử dụng DBCC CHECKIDENT kiểm tra giá trị nhận dạng hiện tại cho bảng và nếu cần, hãy thay đổi giá trị nhận dạng.

DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
  • Khi giá trị cột Danh tính cần được cập nhật cho các bản ghi hiện có

Sử dụng IDENTITY_INSERT cho phép chèn các giá trị rõ ràng vào cột nhận dạng của bảng.

SET IDENTITY_INSERT YourTable {ON|OFF}

Ví dụ:

-- Set Identity insert on so that value can be inserted into this column
SET IDENTITY_INSERT YourTable ON
GO
-- Insert the record which you want to update with new value in the identity column
INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
GO
-- Delete the old row of which you have inserted a copy (above) (make sure about FK's)
DELETE FROM YourTable WHERE ID=3
GO
--Now set the idenetity_insert OFF to back to the previous track
SET IDENTITY_INSERT YourTable OFF


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc cơ sở dữ liệu là gì?

  2. Tôi có thực sự cần sử dụng SET XACT_ABORT ON không?

  3. Làm thế nào để tìm ra những gì đang khóa bảng của tôi?

  4. Trả lại đặc quyền bảng từ một máy chủ được liên kết trong SQL Server (Ví dụ T-SQL)

  5. Kích hoạt SQL Server:Kích hoạt DML