UNIQUE 제약 조건 만들기
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance
SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 고유성 제약 조건을 만들어 기본 키에 참여하지 않는 특정 열에 중복 값을 입력하지 않았는지 확인할 수 있습니다. UNIQUE 제약 조건을 만들면 해당하는 고유 인덱스가 자동으로 만들어집니다.
참고 항목
Azure Synapse Analytics의 고유성 제약 조건은 Azure Synapse Analytics의 기본 키, 외래 키 및 고유 키를 참조하세요.
권한
테이블에 대한 ALTER 사용 권한이 필요합니다.
SSMS(SQL Server Management Studio) 사용
SSMS를 사용하여 고유성 제약 조건 만들기
개체 탐색기에서 UNIQUE 제약 조건을 추가하려는 테이블을 마우스 오른쪽 단추로 클릭하고 디자인을 선택합니다.
테이블 디자이너 메뉴에서 인덱스/키를 선택합니다.
인덱스/키 대화 상자에서 추가를 선택합니다.
일반 아래에 있는 약식 표에서 형식을 선택하고 속성 오른쪽에 있는 드롭다운 목록 상자에서 고유 키를 선택한 다음, 닫기를 선택합니다.
파일 메뉴에서 table name 저장을 선택합니다.
Transact-SQL 사용
Transact-SQL을 사용하여 고유성 제약 조건 만들기
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예에서는
TransactionHistoryArchive4
테이블을 만들고TransactionID
열에 UNIQUE 제약 조건을 만듭니다.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
기존 테이블에 고유성 제약 조건 만들기
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예에서는
PasswordHash
테이블에서PasswordSalt
및Person.Password
열에 UNIQUE 제약 조건을 만듭니다.USE AdventureWorks2022; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
새 테이블에 고유성 제약 조건 만들기
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예제를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예에서는 테이블을 만들고
TransactionID
열에 UNIQUE 제약 조건을 정의합니다.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive2 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
nullable 열에 고유성 제약 조건 만들기
개체 탐색기에서 데이터베이스 엔진인스턴스에 연결합니다.
표준 도구 모음에서 새 쿼리를 선택합니다.
다음 예시를 복사하여 쿼리 창에 붙여넣고 실행을 선택합니다. 이 예제에서는
CREATE UNIQUE INDEX
구문을 사용하여 필터링된 고유성 제약 조건을 만들고NULL
이 아닌 값에만 고유성을 적용합니다.USE AdventureWorks2022; GO CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion ON dbo.AdventureWorksDWBuildVersion (DBVersion) WHERE (DBVersion IS NOT NULL); GO