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

Cách sử dụng hàm IDENTITY () trong SQL Server

Trong SQL Server, bạn có thể sử dụng IDENTITY() chức năng chèn một cột nhận dạng vào một bảng mới.

Tuy nhiên, không nên nhầm lẫn chức năng này với IDENTITY() tài sản , được sử dụng với CREATE TABLEALTER TABLE các câu lệnh.

IDENTITY() chức năng chỉ được sử dụng trong SELECT câu lệnh với INTO mệnh đề bảng. Vì vậy, bạn có thể sử dụng nó khi chuyển dữ liệu từ bảng này sang bảng khác.

Cú pháp

Cú pháp như sau:

IDENTITY (data_type [ , seed , increment ] ) AS column_name

data_type đối số chỉ định kiểu dữ liệu của cột nhận dạng. Kiểu dữ liệu hợp lệ là bất kỳ kiểu dữ liệu nào thuộc danh mục kiểu dữ liệu số nguyên, ngoại trừ bit số thập phân .

hạt giống là giá trị được sử dụng cho hàng đầu tiên được tải vào bảng.

Phần tăng là giá trị gia tăng được thêm vào giá trị nhận dạng của hàng trước đó đã được tải.

column_name đối số cung cấp tên của cột nhận dạng mà bạn muốn tạo.

Ví dụ 1 - Cách sử dụng cơ bản

Đây là một ví dụ mã cơ bản.

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

Thao tác này chọn dữ liệu từ Thú cưng và chèn nó vào một bảng mới có tên là Bạn thân nhất . Cột đầu tiên là cột nhận dạng mà tôi tạo bằng IDENTITY() hàm số. Trong trường hợp này, tôi đặt hạt giống là 101 và số gia tăng là 10. Tôi gọi cột đó là pet_id .

Tôi gọi cột thứ hai là pet_name và tôi điền thông tin đó từ cột có tên là PetName .

Đây là những gì Thú cưng bảng trông giống như:

CREATE TABLE Pets (
    PetId int IDENTITY(1,1) PRIMARY KEY, 
    PetName varchar(255)
    );
INSERT INTO Pets (PetName)
VALUES ('Homer'), ('Felix'), ('Ruff');

SELECT * FROM Pet;

Kết quả:

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

Và đây là những gì Bạn thân nhất bảng trông như thế nào sau khi chuyển dữ liệu:

SELECT * FROM BestFriends;

Kết quả:

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

Vì vậy, tên vật nuôi vẫn giữ nguyên, nhưng cột nhận dạng chứa các giá trị khác nhau (vì tôi đã sử dụng IDENTITY(int, 101, 10) , so với IDENTITY(1,1) cho Thú cưng bảng).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại giá trị gia tăng của một cột nhận dạng trong SQL Server

  2. Làm cách nào tôi có thể sao chép cơ sở dữ liệu SQL Server trên cùng một máy chủ trong SQL Server 2008 Express?

  3. Cách ánh xạ một trường thực thể có tên là một từ dành riêng trong JPA

  4. Cách chuyển một mảng vào một thủ tục được lưu trữ trên SQL Server

  5. 3 cách trả về hàng chứa ký tự chữ và số trong SQL Server