source

SQL Server 2005 고유 제약 조건 작성 방법

lovecheck 2023. 4. 7. 21:33
반응형

SQL Server 2005 고유 제약 조건 작성 방법

SQL Server 2005의 기존 테이블에 고유한 제약조건을 작성하려면 어떻게 해야 합니까?

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

SQL 명령어는 다음과 같습니다.

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

자세한 구문은 여기를 참조하십시오.

데이터베이스 다이어그램에서 이 작업을 수행할 경우:

  • 테이블을 마우스 오른쪽 버튼으로 클릭하고 '색인/키'를 선택합니다.
  • [Add] 버튼을 클릭하여 새 인덱스를 추가합니다.
  • 오른쪽의 [Properties]에 필요한 정보를 입력합니다.
    • 원하는 열(줄임표 버튼을 클릭하여 선택)
    • 고유함을 예로 설정
    • 그것에 적절한 이름을 붙이다.

SQL Server Management Studio Express에서 다음을 수행합니다.

  • 테이블을 오른쪽 클릭하여 [Modify]또는 [Design](최신 버전의 경우)를 선택합니다.
  • 필드를 마우스 오른쪽 버튼으로 클릭하고 색인/키...선택합니다.
  • [추가(Add)]을 클릭합니다.
  • 에서 원하는 필드 이름을 선택합니다.
  • 유형에서 고유 키를 선택합니다.
  • 닫기, 테이블 저장클릭합니다.
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]

데이터베이스 다이어그램을 통해서도 이 작업을 수행할 수 있습니다.

테이블을 마우스 오른쪽 버튼으로 클릭하고 인덱스/키를 선택하면...

'추가' 버튼을 클릭하고 열을 원하는 열로 변경합니다.

변경은 '예'로 고유합니다.

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

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

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN 문서

테이블이 이미 생성되었을 때 하나 이상의 열에 고유 제약 조건을 만들려면 다음 SQL을 사용합니다.

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

위 조회에 대한 고유 제약 조건의 이름을 지정하려면 다음과 같이 하십시오.

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

MySQL / SQL Server / Oracle / MS Access에서 지원되는 쿼리입니다.

관리 스튜디오 다이어그램에서 테이블을 선택하고 필요에 따라 마우스 오른쪽 버튼을 클릭하여 새 열을 추가하고 열을 마우스 오른쪽 버튼으로 클릭한 후 "Check Constraints(제약조건 확인)"을 선택합니다. 여기서 테이블을 추가할 수 있습니다.

경우에 따라서는 Unique Key를 작성하기 전에 해당 키가 존재하지 않는지 확인하는 것이 바람직할 수 있습니다.이 경우 다음 스크립트가 도움이 될 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/64981/sql-server-2005-how-create-a-unique-constraint

반응형