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 TABLE
và ALTER 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 và 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).