Bagaimana cara membuat batasan unik pada tabel yang ada di SQL Server 2005?
Saya mencari TSQL dan bagaimana melakukannya di Database Diagram.
Bagaimana cara membuat batasan unik pada tabel yang ada di SQL Server 2005?
Saya mencari TSQL dan bagaimana melakukannya di Database Diagram.
Jawaban:
Perintah SQL adalah:
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
Lihat sintaks lengkapnya di sini .
Jika Anda ingin melakukannya dari Diagram Database:
Dalam SQL Server Management Studio Express:
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.
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
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.
Anda mencari sesuatu seperti yang berikut ini
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b
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.
UNIQUE NONCLUSTERED
dan opsi PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
?
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