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

Cara Menggunakan Fungsi IDENTITY() di SQL Server

Di SQL Server, Anda dapat menggunakan IDENTITY() berfungsi untuk menyisipkan kolom identitas ke dalam tabel baru.

Namun, fungsi ini jangan disamakan dengan IDENTITY() properti , yang digunakan dengan CREATE TABLE dan ALTER TABLE pernyataan.

IDENTITY() fungsi hanya digunakan dalam SELECT pernyataan dengan INTO klausa tabel. Jadi Anda bisa menggunakannya saat mentransfer data dari satu tabel ke tabel lain, misalnya.

Sintaks

Sintaksnya seperti ini:

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

tipe_data argumen menentukan tipe data kolom identitas. Tipe data yang valid adalah semua tipe data dari kategori tipe data integer, kecuali untuk bit dan desimal .

benih adalah nilai yang digunakan untuk baris pertama yang dimuat ke dalam tabel.

kenaikan adalah nilai tambahan yang ditambahkan ke nilai identitas baris sebelumnya yang dimuat.

nama_kolom argumen memberikan nama kolom identitas yang ingin Anda buat.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh kode dasar.

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

Ini memilih data dari Hewan Peliharaan tabel dan memasukkannya ke dalam tabel baru bernama Teman Terbaik . Kolom pertama adalah kolom identitas yang saya buat dengan IDENTITY() fungsi. Dalam hal ini saya mengatur seed menjadi 101 dan increment menjadi 10. Saya menyebut kolom itu pet_id .

Saya memanggil kolom kedua pet_name , dan saya mengisinya dari kolom bernama PetName .

Inilah Hewan Peliharaan tabel terlihat seperti:

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

SELECT * FROM Pet;

Hasil:

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

Dan inilah Teman Terbaik tabel terlihat seperti setelah mentransfer data:

SELECT * FROM BestFriends;

Hasil:

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

Jadi nama hewan peliharaan tetap sama, tetapi kolom identitas berisi nilai yang berbeda (karena saya menggunakan IDENTITY(int, 101, 10) , dibandingkan dengan IDENTITY(1,1) untuk Hewan Peliharaan tabel).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memasukkan data SQL Server ke Salesforce.com

  2. Kesalahan overflow aritmatika mengonversi ekspresi ke tipe data datetime. (sambil menampilkan tanggal waktu..)

  3. database terlampir hanya baca

  4. Apakah ada perbedaan antara DECIMAL dan NUMERIC di SQL Server?

  5. ACOS() Contoh di SQL Server