Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kembalikan Nilai Kenaikan dari Kolom Identitas di SQL Server

Di SQL Server, Anda dapat menggunakan T-SQL IDENT_INCR() berfungsi untuk mengembalikan nilai kenaikan dari kolom identitas. Ini adalah nilai kenaikan yang ditentukan saat membuat kolom identitas.

Sintaks

Sintaksnya seperti ini:

IDENT_INCR ( 'table_or_view' )

tabel_atau_tampilan argumen adalah ekspresi yang menentukan tabel atau tampilan untuk memeriksa nilai kenaikan identitas yang valid.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh kode dasar.

SELECT IDENT_INCR('Pets') AS Result;

Hasil:

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

Dalam hal ini, nilai peningkatan identitas adalah 1.

Berikut kueri lain yang memeriksa lebih banyak tabel.

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

Hasil:

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

Contoh 2 – Menyertakan Skema

Anda juga dapat menyertakan skema dalam argumen.

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

Hasil:

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

Contoh 3 – Centang Semua Tabel di Database

Berikut ini contoh pemeriksaan semua tabel dalam database untuk nilai benih identitasnya.

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;

Hasil:

+----------------+----------------+--------------+
| 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            |
+----------------+----------------+--------------+

Tentang Nilai Pengembalian

Nilai kembalian untuk IDENT_INCR() adalah numeric(@@MAXPRECISION,0)) . Ini berarti bahwa ini adalah tipe data numerik dengan presisi dan skala tetap.

Ketepatan tergantung pada server. @@MAXPRECISION argumen mengembalikan tingkat yang digunakan oleh tipe data desimal dan numerik seperti yang saat ini diatur di server. Presisi menentukan jumlah total digit desimal maksimum (termasuk yang ada di sisi kiri dan kanan titik desimal).

Argumen kedua menentukan skala 0 , yang berarti tidak ada angka desimal di sebelah kanan tempat desimal.

Anda dapat menjalankan kueri berikut untuk menemukan tingkat presisi yang saat ini disetel di server Anda:

SELECT @@MAX_PRECISION AS [Max Precision];

Inilah hasilnya di sistem saya:

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

Membuat Kolom Identitas

Anda dapat membuat kolom identitas dengan menggunakan IDENTITY() properti di CREATE TABLE atau ALTER TABLE penyataan.

Cara lain untuk membuat kolom identitas adalah IDENTITY() fungsi. Ini memungkinkan Anda membuat kolom identitas saat menggunakan SELECT INTO pernyataan untuk mentransfer data dari satu sumber ke sumber lainnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan properti identitas ke kolom yang ada di SQL Server?

  2. Jalankan SERVERPROPERTY() Terhadap Server Tertaut di SQL Server

  3. Skema server SQL dan skema default

  4. Hanya satu ekspresi yang dapat ditentukan dalam daftar pilih ketika subquery tidak diperkenalkan dengan EXISTS

  5. Cara Memperbaiki:"SQLServerAgent saat ini tidak berjalan ..."