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 TABLEdanALTER TABLEpernyataan.IDENTITY()Namun, fungsi hanya digunakan dalamSELECTpernyataan denganINTOklausa 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.