Apa itu Batasan Unik di SQL Server:
Batasan Unik di SQL Server dibuat pada kolom atau kolom untuk membatasi kolom agar hanya menerima nilai unik.Hanya nilai Null tunggal yang diizinkan di kolom tempat Batasan Unik dibuat.
Skenario:
Katakanlah Anda bekerja sebagai pengembang SQL Server untuk perusahaan asuransi, Anda diminta untuk membuat tabel dbo.Pelanggan yang harus memiliki kolom SSN dan harus selalu menerima nilai Unik.Solusi:
Untuk skenario di atas, kita dapat menggunakan Unique Constraint pada Kolom SSN. Skrip di bawah ini dapat digunakan untuk membuat batasan unik pada kolom.USE [YourDatabaseName] GO CREATE TABLE [dbo].[Customer]( [FirstName] [varchar](50) NULL, [LastName] [varchar](50) NULL, [SSN] VARCHAR(11), Unique(SSN) ) --Insert sample records in table Insert into dbo.Customer(FirstName,LastName,SSN) Values('Raza','M',Null) ,('Aamir','Shahzad','000-00-0001') ,('Aamir','Shahzad','000-00-0002')
Cek data pada tabel dbo.Customer dengan menggunakan Select query
Cara menambahkan Batasan Unik pada Kolom di SQL Server |
Mari kita gunakan tampilan sistem untuk memeriksa apakah Batasan Unik telah ditambahkan dan nama apa yang diberikan SQL Server padanya.
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'UNIQUE'
Cara menambahkan Batasan Unik di SQL Server |
Seperti yang kita lihat bahwa SQL Server telah memberikan nama "UQ__Customer__CA1E8E3C7E8AFCB1" ke Unique Constraint. Jika kita ingin menerapkan beberapa konvensi penamaan maka kita harus memberikan nama sendiri.
Jika kita mencoba memasukkan nilai yang sudah ada di kolom Unique Constraint, kita akan mendapatkan error di bawah ini.
Insert into dbo.Customer(FirstName,LastName,SSN) Values('Raza','M',Null)
Msg 2627, Level 14, State 1, Line 11
Pelanggaran batasan UNIQUE KEY 'UQ__Customer__CA1E8E3C7E8AFCB1'. Tidak dapat memasukkan kunci duplikat di objek 'dbo.Customer'. Nilai kunci duplikatnya adalah (
Pernyataan telah dihentikan.
Jika Anda ingin membuat Unique Constraint dengan beberapa konvensi penamaan, kita dapat menggunakan sintaks di bawah ini.
USE [YourDatabaseName] GO CREATE TABLE [dbo].[Customer]( [FirstName] [varchar](50) NULL, [LastName] [varchar](50) NULL, [SSN] VARCHAR(11), Constraint UQ_Dbo_Customer_SSN Unique(SSN) )
Video Demo :Apa itu Unique Constraint di SQL Server