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

IDENTITY () so với IDENTITY () trong SQL Server:Sự khác biệt là gì?

Có vẻ lạ, nhưng T-SQL có IDENTITY() thuộc tính và một IDENTITY() mỗi chức năng phục vụ một mục đích (tương tự, nhưng) khác nhau.

  • IDENTITY() thuộc tính tạo một cột nhận dạng trong một bảng. Cột nhận dạng chứa số nhận dạng tự động tăng dần. Thuộc tính này được sử dụng với CREATE TABLEALTER TABLE các câu lệnh.
  • IDENTITY() tuy nhiên, hàm chỉ được sử dụng trong SELECT câu lệnh với INTO mệnh đề bảng để chèn một cột nhận dạng vào một bảng mới.

Ngoài ra còn có SQL-DMO Identity thuộc tính hiển thị thuộc tính nhận dạng hàng của một cột, nhưng tôi sẽ không trình bày điều đó ở đây. Microsoft khuyên rằng thuộc tính này sẽ bị xóa trong phiên bản SQL Server trong tương lai và bạn nên tránh sử dụng nó trong công việc phát triển mới.

Thuộc tính IDENTITY ()

Đây là một ví dụ về việc sử dụng IDENTITY() tài sản.

CREATE TABLE Pets (
    PetId int IDENTITY(1,1) PRIMARY KEY, 
    PetName varchar(255)
    );

Mã này tạo một bảng có hai cột. Cột đầu tiên (PetId ) là cột nhận dạng (vì tôi sử dụng IDENTITY() tài sản theo định nghĩa của nó).

Bây giờ tôi đã tạo cột nhận dạng, tôi có thể chèn tên vật nuôi vào PetName mà không cần bao gồm ID cho mỗi hàng.

INSERT INTO Pets (PetName)
VALUES ('Homer'), ('Felix'), ('Ruff');

SELECT * FROM Pet;

Kết quả:

+---------+-----------+
| PetId   | PetName   |
|---------+-----------|
| 1       | Homer     |
| 2       | Felix     |
| 3       | Ruff      |
+---------+-----------+

Trong trường hợp này, việc đánh số bắt đầu từ 1 và mỗi hàng tăng lên 1. Điều này là do tôi đã sử dụng IDENTITY(1,1) để chỉ định rằng giá trị gốc là 1 và nó được tăng thêm 1 trên mỗi hàng mới.

Hàm

IDENTITY ()

Như đã đề cập, IDENTITY() hàm được sử dụng trong SELECT INTO tuyên bố. Đây là một ví dụ về việc sử dụng IDENTITY() chức năng.

SELECT 
  IDENTITY(int, 101, 10) AS pet_id,
  PetName AS pet_name
INTO BestFriends
FROM Pets;

SELECT * FROM BestFriends;

Kết quả:

+----------+------------+
| pet_id   | pet_name   |
|----------+------------|
| 101      | Homer      |
| 111      | Felix      |
| 121      | Ruff       |
+----------+------------+

Ở đây, tôi đã tạo một bảng có tên là BestFriends và điền nó từ Pets bàn.

Trong trường hợp này, tôi bắt đầu đếm ở 101 và tăng lên 10. Cũng lưu ý rằng hàm yêu cầu đối số đầu tiên để chỉ định kiểu dữ liệu của cột.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HỒ SƠ THỐNG KÊ trong SQL Server là gì?

  2. Dữ liệu &Thông tin và Khối lượng Dữ liệu là gì

  3. Nhận giá trị trả lại từ JDBC MSSQL

  4. Ngày / Dấu thời gian để ghi khi một bản ghi được thêm vào bảng?

  5. Cách xoay động với cột ngày tháng