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

Cara Mendefinisikan Kunci Utama Peningkatan Otomatis di SQL Server

Mirip dengan MySQL, PostgreSQL, Oracle, dan banyak database relasional lainnya, SQL Server paling baik digunakan saat menetapkan kunci utama unik ke sebagian besar tabel database.

Keuntungan menggunakan kunci utama numerik yang ditambahkan secara otomatis sangat banyak, tetapi manfaat yang paling berdampak adalah kecepatan yang lebih cepat saat melakukan kueri dan kemandirian data saat mencari melalui ribuan catatan yang mungkin berisi data yang sering diubah di tempat lain dalam tabel. Dengan pengenal numerik yang konsisten dan unik, aplikasi dapat memanfaatkan kueri yang lebih cepat dan lebih andal ini.

Pembuatan Tabel Dasar

Setelah terhubung ke SQL Server, Anda biasanya memulai dengan CREATING tabel baru yang berisi bidang yang ingin Anda gunakan sebagai kunci utama tambahan Anda. Sebagai contoh, kami akan tetap menggunakan id yang telah dicoba dan benar bidang:

CREATE TABLE books (
  id              INT           NOT NULL,
  title           VARCHAR(100)  NOT NULL,
  primary_author  VARCHAR(100),
);

Masalahnya di sini adalah, kami tidak memiliki cara untuk mengontrol id kami bidang. Ketika record baru dimasukkan, kita tidak hanya harus memasukkan nilai secara manual untuk id , tetapi kami harus melakukan kueri sebelumnya untuk mencoba memverifikasi id nilai belum ada (hampir tidak mungkin ketika berhadapan dengan banyak koneksi simultan).

Menggunakan Kendala Identitas dan Kunci Utama

Solusinya ternyata menggunakan dua opsi kendala yang disediakan oleh SQL Server.

Yang pertama adalah PRIMARY KEY , yang seperti namanya, memaksa kolom yang ditentukan untuk berperilaku sebagai indeks yang benar-benar unik untuk tabel, memungkinkan pencarian dan kueri yang cepat.

Sementara SQL Server hanya mengizinkan satu PRIMARY KEY batasan yang ditetapkan ke satu tabel, yaitu PRIMARY KEY dapat didefinisikan untuk lebih dari satu kolom. Dalam skenario multi-kolom, kolom individual dapat berisi duplikat, nilai non-unik, tetapi PRIMARY KEY batasan memastikan bahwa setiap kombinasi dari nilai-nilai yang dibatasi sebenarnya akan menjadi unik relatif terhadap setiap kombinasi lainnya.

Bagian kedua dari teka-teki adalah IDENTITY kendala, yang menginformasikan SQL Server untuk secara otomatis menambah nilai numerik dalam kolom yang ditentukan kapan saja catatan baru INSERTED . Sedangkan IDENTITY bisa menerima dua argumen dari seed numer numerik di mana nilai akan dimulai serta increment , nilai-nilai ini biasanya tidak ditentukan dengan IDENTITY kendala dan sebagai gantinya dibiarkan sebagai default (keduanya default ke 1 ).

Dengan pengetahuan baru ini di ujung jari kami, kami dapat menulis ulang CREATE TABLE kami sebelumnya pernyataan dengan menambahkan dua batasan baru kami.

CREATE TABLE books (
  id              INT           NOT NULL    IDENTITY    PRIMARY KEY,
  title           VARCHAR(100)  NOT NULL,
  primary_author  VARCHAR(100),
);

Itu saja. Sekarang id kolom books kami tabel akan bertambah secara otomatis pada setiap INSERT dan id bidang ini dijamin memiliki nilai unik juga.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah urutan Sql JOIN mempengaruhi kinerja?

  2. Bagaimana cara meneruskan parameter ke kueri mssql di node js

  3. Jalankan sp_msforeachdb dalam aplikasi Java

  4. Mengambil tanggal di server sql, CURRENT_TIMESTAMP vs GetDate()

  5. Statistik Penggunaan Indeks SQL Server