Bagikan melalui


Membuat batasan unik

Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru

Anda dapat membuat batasan unik di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL untuk memastikan tidak ada nilai duplikat yang dimasukkan dalam kolom tertentu yang tidak berpartisipasi dalam kunci primer. Membuat batasan unik secara otomatis membuat indeks unik yang sesuai.

Catatan

Untuk informasi tentang batasan unik di Azure Synapse Analytics, lihat Kunci primer, kunci asing, dan kunci unik di Azure Synapse Analytics.

Izin

Memerlukan izin UBAH pada tabel.

Menggunakan SQL Server Management Studio (SSMS)

Membuat batasan unik menggunakan SSMS

  1. Di Object Explorer, klik kanan tabel yang ingin Anda tambahkan batasan uniknya, dan pilih Desain.

  2. Pada menu Desainer Tabel, pilih Indeks/Kunci.

  3. Dalam kotak dialog Indeks/Kunci , pilih Tambahkan.

  4. Di kisi di bawah Umum, pilih Ketik dan pilih Kunci Unik dari kotak daftar dropdown di sebelah kanan properti, lalu pilih Tutup.

  5. Pada menu File , pilih Simpan nama tabel.

Menggunakan Transact-SQL

Membuat batasan unik menggunakan Transact-SQL

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar , pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan. Contoh membuat tabel TransactionHistoryArchive4 dan membuat batasan unik pada kolom TransactionID.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive4  
     (  
       TransactionID int NOT NULL,   
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)   
    );   
    GO  
    

Membuat batasan unik pada tabel yang sudah ada

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar , pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan. Contoh membuat batasan unik pada kolom PasswordHash dan PasswordSalt dalam tabel Person.Password.

    USE AdventureWorks2022;   
    GO  
    ALTER TABLE Person.Password   
    ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);   
    GO  
    
    

Membuat batasan unik pada tabel baru

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar , pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan. Contoh membuat tabel dan menentukan batasan unik pada kolom TransactionID.

    USE AdventureWorks2022;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive2  
    (  
       TransactionID int NOT NULL,  
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)  
    );  
    GO  
    

Membuat batasan unik pada kolom nullable

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar , pilih Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan. Contoh membuat batasan unik yang difilter menggunakan CREATE UNIQUE INDEX sintaksis, hanya memberlakukan keunikan pada nilai non-NULL .

    USE AdventureWorks2022;  
    GO
    CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion
    ON dbo.AdventureWorksDWBuildVersion (DBVersion)
    WHERE (DBVersion IS NOT NULL);
    GO