2009-02-14 43 views

Trả lời

28

Nó chỉ đơn giản có nghĩa là cột sử dụng hàm Identity(seed, increment) để cung cấp các giá trị cho khóa chính (thường). Nó còn được gọi là "Autonumber". Dòng thứ hai bên dưới là ví dụ:

CREATE TABLE Table (
TableID bigint IDENTITY(1,1) NOT NULL, 
DateTimeStamp datetime NOT NULL DEFAULT (getdate()), 
Data nvarchar(100) NOT NULL, 
CONSTRAINT PK_Table PRIMARY KEY CLUSTERED 
(
    TableID ASC 
) 

Nó hoạt động như một giá trị mặc định cho cột tăng cho mỗi bản ghi. Lưu ý rằng bạn cũng có thể lấy giá trị được chèn từ SCOPE_IDENTITY(). Không sử dụng @@ IDENTITY vì nó bị khấu hao và có thể trả lại kết quả sai trong trường hợp các trình kích hoạt hoặc ngữ cảnh lồng nhau.

4

Cờ cho thấy một cột sắc - có thể được sử dụng như là một cột tự động thặng dư (khuyến khích cho bất kỳ bảng)

nó có nhiều ý nghĩa như việc có thể để có được id của hàng chèn cuối cùng trong một bảng sử dụng @ @IDENTITY hoặc SCOPE_IDENTITY() vv

Hãy thử: Understanding Identity Columns

+0

Có. Điều này có. Cảm ơn rất nhiều!!!! – Niyaz

+0

tôi đã cập nhật nhận xét với một số thông tin khác. đừng quên bỏ phiếu cho câu trả lời. Cảm ơn – IEnumerator

+1

Không sử dụng @@ IDENTITY. Đó là không đáng tin cậy, nếu có một kích hoạt trên bảng mà đặt dữ liệu vào một bảng có một cột nhận dạng trên nó @@ IDENTITY sẽ trả về giá trị sai. – mrdenny

1

Đó là tương đương với tài sản AUTO_INCREMENT của MySQL. Thường được sử dụng trên cột khóa chính

0

Tất cả các tính năng của thuộc tính cột SQL Server IDENTITY. Và một thủ tục tiện dụng để giám sát tất cả các cột Identity. http://www.sqllion.com/2011/08/identity-in-sql/

+2

Chào mừng bạn đến với Stack Overflow! Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (http://meta.stackexchange.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo. – Kev

Các vấn đề liên quan