Ini mungkin tampak aneh, tetapi T-SQL memiliki IDENTITY()
properti dan IDENTITY()
fungsi, yang masing-masing memiliki tujuan (serupa, tetapi) berbeda.
IDENTITY()
properti membuat kolom identitas dalam tabel. Kolom identitas berisi nomor identifikasi yang bertambah secara otomatis. Properti ini digunakan denganCREATE TABLE
danALTER TABLE
pernyataan.IDENTITY()
Namun, fungsi hanya digunakan dalamSELECT
pernyataan denganINTO
klausa tabel untuk menyisipkan kolom identitas ke dalam tabel baru.
Ada juga Identity
SQL-DMO properti yang mengekspos properti identitas baris dari sebuah kolom, tetapi saya tidak akan membahasnya di sini. Microsoft menyarankan bahwa properti ini akan dihapus dalam versi SQL Server yang akan datang, dan Anda harus menghindari menggunakannya dalam pekerjaan pengembangan baru.
IDENTITAS() Properti
Berikut ini contoh penggunaan IDENTITY()
properti.
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) );
Kode ini membuat tabel dengan dua kolom. Kolom pertama (PetId
) adalah kolom identitas (karena saya menggunakan IDENTITY()
properti dalam definisinya).
Sekarang saya telah membuat kolom identitas, saya dapat memasukkan nama hewan peliharaan ke dalam PetName
kolom tanpa perlu menyertakan ID untuk setiap baris.
INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
Hasil:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
Dalam hal ini, penomoran dimulai dari 1 dan setiap baris bertambah 1. Ini karena saya menggunakan IDENTITY(1,1)
untuk menentukan bahwa nilai benih adalah 1 dan bertambah 1 pada setiap baris baru.
IDENTITY() Fungsi
Seperti disebutkan, IDENTITY()
fungsi digunakan dalam SELECT INTO
penyataan. Berikut ini contoh penggunaan IDENTITY()
fungsi.
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets; SELECT * FROM BestFriends;
Hasil:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
Di sini, saya membuat tabel bernama BestFriends
dan mengisinya dari Pets
meja.
Dalam hal ini saya memulai hitungan pada 101 dan menambahkannya dengan 10. Perhatikan juga bahwa fungsi memerlukan argumen pertama untuk menentukan tipe data kolom.