2013-06-22 2 views
4

Я хочу сделать три столбца является уникальным в моей таблице данныхКак сделать два 3 столбца уникальными в SQL-сервере?

----------------------------------- 
Column A | Column B | Column C 
---------------------------------- 
    Kasun  Cham  Nimith 
---------------------------------- 
    Kasun  Cham  Rox  - This row ok and must be allowed to add. 
---------------------------------- 
    Kasun  Cham  Nimith - but This row must not be allowed to add again, 
--------------------------------- 

, как я могу сделать это в сервере SQL?

+2

make Столбцы A, B, C первичные ключи? – Reyno

+0

@Reyno, что приведет к тому, что каждый столбец PK будет иметь уникальную запись в строке. Не работайте с вышеуказанным случаем. –

+2

@ Chris'o - Он будет работать нормально. 'CREATE TABLE X (A VARCHAR (10), B VARCHAR (10), C VARCHAR (10), PRIMARY KEY (A, B, C))' гарантирует, что ** комбинация ** 'a, b, c' является уникальным. –

ответ

5

Этот код сделает то, что вы хотите.

CREATE UNIQUE CLUSTERED INDEX index_name ON TABLE (col1,col2, col3) 
or 
CREATE UNIQUE NONCLUSTERED INDEX index_name ON TABLE (col1,col2 , col3) 

or 

ALTER TABLE [dbo].[TABLE] ADD CONSTRAINT 
UNIQUE_Table UNIQUE CLUSTERED 
(
col1, 
col2, 
col3 
) ON [PRIMARY] 
4

Вы можете добавить уникальное ограничение:

ALTER TABLE [TableName] ADD CONSTRAINT [constraintName] UNIQUE ([columns]) 

Вы можете прочитать документацию here.

1

Чтобы справиться с этой проблемой при создании этой таблицы, вам необходимо создать уникальное ограничение для столбцов A/B/C.