SQL Server 2005의 기존 테이블에 대한 고유 제약 조건을 어떻게 만듭니 까?
데이터베이스 다이어그램에서 TSQL과 수행 방법을 모두 찾고 있습니다.
SQL 명령은 다음과 같습니다.
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
전체 구문을 참조하십시오 here .
데이터베이스 다이어그램에서 수행하려는 경우 :
SQL Server Management Studio Express에서 :
ALTER TABLE [TableName] ADD CONSTRAINT [constraintName] UNIQUE ([columns])
경고 : 고유하게 설정 한 열에는 하나의 null 행만있을 수 있습니다.
SQL 2008에서 필터링 된 인덱스를 사용하여이 작업을 수행 할 수 있습니다.
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
을 참조하십시오. 답의 범위가 NULL 이 아니면 필드 값은 고유해야합니다.
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
또한 데이터베이스 다이어그램을 통해이 작업을 수행 할 수 있다는 것을 알았습니다.
테이블을 마우스 오른쪽 단추로 클릭하고 색인/키 ...를 선택하십시오.
'추가'버튼을 클릭하고 열을 고유하게 만들려는 열로 변경하십시오.
고유를 예로 변경하십시오.
닫기를 클릭하고 다이어그램을 저장하면 테이블에 추가됩니다.
테이블이 이미 작성되었을 때 하나 이상의 열에 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에서 지원하는 쿼리
관리 스튜디오 다이어그램에서 테이블을 선택하고 원하는 경우 마우스 오른쪽 버튼을 클릭하여 새 열을 추가하고 열을 마우스 오른쪽 버튼으로 클릭 한 다음 "제약 확인"을 선택하면 테이블을 추가 할 수 있습니다.
경우에 따라 고유 키를 작성하기 전에 존재하지 않는 것이 바람직 할 수 있습니다. 이러한 경우 아래 스크립트가 도움이 될 수 있습니다.
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