Thứ Hai, 17 tháng 3, 2014

Các thủ thuật làm việc với trường IDENTITY trong SQL Server

(Trường tự tăng (IDENTITY) trong SQL Server) - Trong quá trình lập trình, để xử lý với những trường hợp trùng mã, người thiết kế CSDL thường đặt cột mã này ở dạng IDENTITY và cột này cũng được chọn làm khóa chính cho bảng. Khi sử dụng cột dạng IDENTITY khi mỗi một bản ghi được chèn vào, giá trị cột này sẽ tự động tăng lên 1 giá trị, do đó dù bạn có xóa hay thêm mới giá trị cột này sẽ không bao giờ bị trùng nhau. Với việc để cột mã dạng IDENTITY sẽ giúp người lập trình không phải mất quá trình thời gian cho việc xử lý trùng mã trong quá trình phát triển. Dưới đây là một số thủ thuật khi làm việc với trường IDENTITY trong SQL.

1. SQL Server không duy trì tính liên tục của dãy số IDENTITY
Ví dụ khi bạn xóa 1 bản ghi có mã giá trị  là 10, khi chèn thêm 1 bản ghi mới  mã giá trị sẽ tự tăng lên là 11 nó sẽ không sử dụng giá trị mã vừa bị xóa.

2. Giá trị trong cột có thuộc tính IDENTITY không đảm bảo là duy nhất, do vậy để đảm bảo tính duy nhất, bạn phải đặt thêm khóa chính cho trường này.

3. Đặt lại giá trrị cho trrường IDENTITY
Để đặt lại giá trị cho trường IDENTITY ta có thể sử dụng 1 trong 2 cách tùy thuộc vào từng yêu cầu.

- Sử dụng TRUNCATE đây là cách để xóa toàn bộ dữ liệu trong 1 bảng và trường IDENTITY sẽ được reset trở về giá trị ban đầu.
- Sử dụng câu lệnh CHECKIDENT: Với câu lệnh này bạn có thể Reset trường IDENTITY với giá trị tùy ý.

Cú pháp
DBCC CHECKIDENT ('dbo.TableName', RESEED, Giá trị)

4. Lấy giá trị IDENTITY cuối cùng vừa được INSERT vào bảng
Cú pháp
INSERT INTO dbo.TableName(Cột 1,Cột 2) VALUES(Giá trị 1, Giá trị 2)
SELECT SCOPE_IDENTITY()

5. Chỉnh sửa giá trị trong trường IDENTITY
Theo mặc định khi trường để kiểu IDENTITY, người sử dụng sẽ không thể chỉnh sửa được giá trị trong đây. Để chỉnh sửa được, bạn phải tắt chế độ IDENTITY, rồi mới có thể chỉnh sửa, thay đổi giá trị. Sau khi chỉnh sửa xong, phải nhớ bật lại chế độ IDENTITY, nếu không việc Insert dữ liệu sẽ bị lỗi.


TỪ KHÓA TÌM KIẾM TRÊN GOOGLE
- Về cột IDENTITY trong SQL Server
- Ve cot IDENTITY trong SQL Server
- Đặt lại giá trị cho trường IDENTITY
- Dat lai gia tri cho truong IDENTITY
- Đặt lại giá trị Identity Seed của trường tự tăng trong SQL Server
- Dat lai gia tri IDENTITY Seed cua truong tu tang trong SQL Server

1 nhận xét:

Các con vật cho bé học, video dạy bé học nói, các con vật thân quen,các con vật giúp bé học nói