it-swarm-ko.tech

SQL Server 2005 고유 제약 조건을 만드는 방법

SQL Server 2005의 기존 테이블에 대한 고유 제약 조건을 어떻게 만듭니 까?

데이터베이스 다이어그램에서 TSQL과 수행 방법을 모두 찾고 있습니다.

181
David Basarab

SQL 명령은 다음과 같습니다.

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

전체 구문을 참조하십시오 here .

데이터베이스 다이어그램에서 수행하려는 경우 :

  • 표를 마우스 오른쪽 버튼으로 클릭하고 '색인/키'를 선택하십시오.
  • 추가 버튼을 클릭하여 새 색인을 추가하십시오
  • 오른쪽의 속성에 필요한 정보를 입력하십시오 :
    • 원하는 열 (줄임표 단추를 클릭하여 선택)
    • 고유함을 예로 설정
    • 적절한 이름을 부여하십시오
273
Rory

SQL Server Management Studio Express에서 :

  • 테이블을 마우스 오른쪽 단추로 클릭하고 수정 또는 디자인 (나중 버전)을 선택하십시오.
  • 필드를 마우스 오른쪽 버튼으로 클릭하고 인덱스/키 ...
  • 클릭 추가
  • 에 대해 필드 이름을 선택하십시오.
  • Type에 대해 고유 키를 선택하십시오.
  • 닫기, 저장 테이블을 클릭하십시오.
84
James Lawruk
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
29
WildJoe

경고 : 고유하게 설정 한 열에는 하나의 null 행만있을 수 있습니다.

SQL 2008에서 필터링 된 인덱스를 사용하여이 작업을 수행 할 수 있습니다.

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

을 참조하십시오. 답의 범위가 NULL 이 아니면 필드 값은 고유해야합니다.

15
Squirrel
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]
13
Ivan Bosnic

또한 데이터베이스 다이어그램을 통해이 작업을 수행 할 수 있다는 것을 알았습니다.

테이블을 마우스 오른쪽 단추로 클릭하고 색인/키 ...를 선택하십시오.

'추가'버튼을 클릭하고 열을 고유하게 만들려는 열로 변경하십시오.

고유를 예로 변경하십시오.

닫기를 클릭하고 다이어그램을 저장하면 테이블에 추가됩니다.

10
David Basarab

다음과 같은 것을 찾고 있습니다.

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN 문서

8
Thunder3

테이블이 이미 작성되었을 때 하나 이상의 열에 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에서 지원하는 쿼리

6
Rafiq

관리 스튜디오 다이어그램에서 테이블을 선택하고 원하는 경우 마우스 오른쪽 버튼을 클릭하여 새 열을 추가하고 열을 마우스 오른쪽 버튼으로 클릭 한 다음 "제약 확인"을 선택하면 테이블을 추가 할 수 있습니다.

5
Gibbons

경우에 따라 고유 키를 작성하기 전에 존재하지 않는 것이 바람직 할 수 있습니다. 이러한 경우 아래 스크립트가 도움이 될 수 있습니다.

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
0
Mario Vázquez