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

Cách đặt lại giá trị cột nhận dạng trong bảng SQL Server - Hướng dẫn SQL Server / T-SQL Phần 43


Hãy bắt đầu với việc tìm hiểu thuộc tính Identity trước và sau đó chúng ta có thể tiến hành bước, chúng ta có thể đặt lại nó bằng cách nào? Tạo bảng SQL Server với cột nhận dạng bằng cách sử dụng tập lệnh bên dưới

USE TEST
GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))

Hãy chèn các bản ghi bên dưới bằng cách sử dụng các câu lệnh dưới đây
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Chỉ một bản ghi sẽ được chèn và bản ghi thứ hai sẽ không thành công vì kích thước của chuỗi lớn hơn kích thước của kiểu dữ liệu cột  Hình 1-Chèn bản ghi trong bảng SQL Server 

Kiểm tra danh tính Giá trị của một cột: Để kiểm tra giá trị nhận dạng của một cột, chúng ta có thể sử dụng câu lệnh dưới đây
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
  
Fig 2- DBCC CHECKIDENT to see the Identity Value


Ngay cả việc chèn không thành công cho bản ghi thứ hai nhưng giá trị nhận dạng được tăng lên. Nếu chúng ta sẽ chèn bản ghi tiếp theo, giá trị nhận dạng sẽ là 3 cho điều đó như chúng ta có thể thấy trong Hình 3.

Dưới đây là một số cách để đặt lại giá trị nhận dạng của cột sau khi xóa dữ liệu.

Đặt lại Giá trị Nhận dạng bằng cách Sử dụng TRUNCATE: Nếu chúng ta muốn xóa mọi thứ khỏi bảng và bảng không có bất kỳ quan hệ Khóa ngoại nào, chúng ta có thể Cắt bớt bảng và điều đó sẽ làm sạch dữ liệu cũng như đặt giá trị nhận dạng Hình 3-Sử dụng Truncate để làm sạch bảng và đặt lại Giá trị nhận dạng


Đặt lại giá trị nhận dạng bằng cách sử dụng DBCC CHECKIDENT: Nếu bảng có mối quan hệ với bất kỳ mối quan hệ bảng nào khác (Khóa chính-Khóa ngoài), chúng tôi sẽ không thể cắt bớt bảng. Trong trường hợp đó, chúng tôi phải xóa các giá trị khỏi bảng bằng cách sử dụng câu lệnh Delete và sau đó đặt giá trị nhận dạng.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Hình 4. Xóa dữ liệu khỏi Bảng và sử dụng DBCC CHECKIDENT để gửi lại giá trị nhận dạng 

Video Demo:Cách đặt lại Giá trị Cột Danh tính trong Bảng SQL Server

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. newid () bên trong hàm máy chủ sql

  2. datetime so với datetimeoffset trong SQL Server:Sự khác biệt là gì?

  3. Có ảnh hưởng nghiêm trọng đến hiệu suất khi sử dụng Khóa ngoại trong SQL Server không?

  4. Điều chỉnh dịch vụ báo cáo máy chủ SQL

  5. Cách tạo thêm câu lệnh cột cho tất cả các bảng trong cơ sở dữ liệu trong SQL Server - Hướng dẫn sử dụng SQL Server / T-SQL Phần 49