답변:
SQL 명령은 다음과 같습니다.
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
데이터베이스 다이어그램에서 수행하려는 경우 :
경고 : 고유하게 설정 한 열에는 하나의 null 행만있을 수 있습니다.
SQL 2008에서 필터링 된 인덱스를 사용하여이 작업을 수행 할 수 있습니다.
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
응답 범위 가 NULL이 아닌 경우 필드 값은 고유해야 함을 참조하십시오 .
테이블이 이미 작성되었을 때 하나 이상의 열에 UNIQUE 제약 조건을 만들려면 다음 SQL을 사용하십시오.
ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
위 쿼리에 대한 UNIQUE 제약 조건의 이름 지정을 허용하려면
ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)
MySQL / SQL Server / Oracle / MS Access에서 지원하는 쿼리입니다.
UNIQUE NONCLUSTERED
및 옵션 PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON
?
경우에 따라 고유 키를 작성하기 전에 존재하지 않는 것이 바람직 할 수 있습니다. 이러한 경우 아래 스크립트가 도움이 될 수 있습니다.
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