it-swarm-id.com

SQL Server 2005 Bagaimana Membuat Kendala Unik?

Bagaimana cara membuat batasan unik pada tabel yang ada di SQL Server 2005?

Saya mencari TSQL dan bagaimana melakukannya di Database Diagram.

180
David Basarab

Perintah SQL adalah:

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

Lihat sintaks lengkap sini .

Jika Anda ingin melakukannya dari Diagram Database:

  • klik kanan pada tabel dan pilih 'Indeks/Kunci'
  • klik tombol Add untuk menambahkan indeks baru
  • masukkan info yang diperlukan di Properti di sebelah kanan:
    • kolom yang Anda inginkan (klik tombol Ellipsis untuk memilih)
    • atur Unik ke Ya
    • berikan nama yang tepat
272
Rory

Dalam SQL Server Management Studio Express:

  • Tabel klik kanan, pilih Ubah atau Desain (Untuk Versi Selanjutnya)
  • Klik kanan bidang, pilih Indeks/Kunci ...
  • Klik Tambah
  • Untuk Kolom , pilih nama bidang Anda ingin menjadi unik.
  • Untuk Ketik , pilih Kunci Unik .
  • Klik Tutup , Simpan tabel.
84
James Lawruk
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
28
WildJoe

Peringatan: Hanya satu baris nol yang dapat berada di kolom yang Anda atur menjadi unik.

Anda dapat melakukan ini dengan indeks yang difilter dalam SQL 2008:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

Lihat Nilai bidang harus unik kecuali NULL untuk rentang jawaban.

15
Squirrel
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]
13
Ivan Bosnic

Saya juga menemukan Anda dapat melakukan ini melalui, diagram database.

Dengan mengklik kanan tabel dan memilih Indeks/Kunci ...

Klik tombol 'Tambah', dan ubah kolom ke kolom yang ingin Anda buat unik.

Ubah Unik untuk Ya.

Klik tutup dan simpan diagram, dan itu akan menambahkannya ke tabel.

10
David Basarab

Anda mencari sesuatu seperti yang berikut ini

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN Documents

8
Thunder3

Untuk membuat batasan UNIQUE pada satu atau beberapa kolom ketika tabel sudah dibuat, gunakan SQL berikut:

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Untuk mengizinkan penamaan kendala UNIK untuk kueri di atas

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

Permintaan didukung oleh MySQL/SQL Server/Oracle/MS Access.

6
Rafiq

Dalam diagram studio manajemen pilih tabel, klik kanan untuk menambahkan kolom baru jika diinginkan, klik kanan pada kolom dan pilih "Periksa Kendala", di sana Anda dapat menambahkan satu.

5
Gibbons

Dalam beberapa situasi, mungkin diinginkan untuk memastikan kunci Unik tidak ada sebelum membuatnya. Dalam kasus seperti itu, skrip di bawah ini mungkin membantu:

IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name> 
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>) 
GO
0
Mario Vázquez