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

Trả lại giá trị gia tăng của một cột nhận dạng trong SQL Server

Trong SQL Server, bạn có thể sử dụng T-SQL IDENT_INCR() hàm để trả về giá trị gia tăng của một cột nhận dạng. Đây là giá trị gia tăng được chỉ định khi tạo cột nhận dạng.

Cú pháp

Cú pháp như sau:

IDENT_INCR ( 'table_or_view' )

table_or_view đối số là một biểu thức chỉ định bảng hoặc chế độ xem để kiểm tra giá trị gia tăng nhận dạng hợp lệ.

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

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

SELECT IDENT_INCR('Pets') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Trong trường hợp này, giá trị gia tăng nhận dạng là 1.

Đây là một truy vấn khác kiểm tra nhiều bảng hơn.

SELECT 
  IDENT_INCR('Pets') AS Pets,
  IDENT_INCR('BestFriends') AS BestFriends,
  IDENT_INCR('Cities') AS Cities;

Kết quả:

+--------+---------------+----------+
| Pets   | BestFriends   | Cities   |
|--------+---------------+----------|
| 1      | 10            | 10       |
+--------+---------------+----------+

Ví dụ 2 - Bao gồm Lược đồ

Bạn cũng có thể đưa lược đồ vào đối số.

SELECT IDENT_INCR('dbo.Pets') AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Ví dụ 3 - Kiểm tra Tất cả các Bảng trong Cơ sở dữ liệu

Dưới đây là một ví dụ về việc kiểm tra tất cả các bảng trong cơ sở dữ liệu để tìm giá trị gốc nhận dạng của chúng.

SELECT 
  TABLE_SCHEMA, 
  TABLE_NAME,   
  IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_INCR  
FROM INFORMATION_SCHEMA.TABLES  
WHERE IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;

Kết quả:

+----------------+----------------+--------------+
| TABLE_SCHEMA   | TABLE_NAME     | IDENT_INCR   |
|----------------+----------------+--------------|
| dbo            | ConstraintTest | 1            |
| dbo            | Event          | 1            |
| dbo            | Scoreboard     | 1            |
| dbo            | Pets           | 1            |
| dbo            | BestFriends    | 10           |
| dbo            | Cities         | 10           |
| dbo            | Colors         | 1            |
+----------------+----------------+--------------+

Giới thiệu về Giá trị Trả lại

Giá trị trả về cho IDENT_INCR()numeric(@@MAXPRECISION,0)) . Điều này có nghĩa là đó là kiểu dữ liệu số với độ chính xác và tỷ lệ cố định.

Độ chính xác phụ thuộc vào máy chủ. @@MAXPRECISION đối số trả về mức được sử dụng bởi các kiểu dữ liệu thập phân và số như hiện được đặt trong máy chủ. Độ chính xác chỉ định tổng số chữ số thập phân tối đa (bao gồm các chữ số ở bên trái và bên phải của dấu thập phân).

Đối số thứ hai chỉ định tỷ lệ 0 , có nghĩa là không có chữ số thập phân nào ở bên phải của vị trí thập phân.

Bạn có thể chạy truy vấn sau để tìm mức độ chính xác hiện được đặt trên máy chủ của mình:

SELECT @@MAX_PRECISION AS [Max Precision];

Đây là kết quả trên hệ thống của tôi:

+-----------------+
| Max Precision   |
|-----------------|
| 38              |
+-----------------+

Tạo cột nhận dạng

Bạn có thể tạo cột nhận dạng bằng cách sử dụng IDENTITY() trong CREATE TABLE của bạn hoặc ALTER TABLE tuyên bố.

Một cách khác để tạo cột nhận dạng là IDENTITY() hàm số. Điều này cho phép bạn tạo cột nhận dạng khi sử dụng SELECT INTO để chuyển dữ liệu từ nguồn này sang nguồn khác.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giao dịch xung quanh một câu lệnh đơn làm gì?

  2. Nhập hàng loạt SQL từ CSV

  3. Làm cách nào để mở rộng các giá trị được phân tách bằng dấu phẩy thành các hàng riêng biệt bằng SQL Server 2005?

  4. Các loại con trỏ máy chủ SQL - Chỉ chuyển tiếp con trỏ tĩnh | Hướng dẫn sử dụng SQL Server / TSQL

  5. Cách tạo mối quan hệ 1-1 thực sự trong SQL Server