반응형
여러 열에 고유한 제약 조건
CREATE TABLE [dbo].[user](
[userID] [int] IDENTITY(1,1) NOT NULL,
[fcode] [int] NULL,
[scode] [int] NULL,
[dcode] [int] NULL,
[name] [nvarchar](50) NULL,
[address] [nvarchar](50) NULL,
CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED
(
[userID] ASC
)
) ON [PRIMARY]
GO
열에 대한 고유한 제약 조건을 추가하려면 어떻게 해야 합니까?fcode, scode, dcode
와 함께t-sql
및/또는management studio
?fcode, scode, dcode
함께 고유해야 합니다.
데이터베이스에 테이블이 이미 작성된 경우 다음 SQL 쿼리를 사용하여 나중에 고유한 제약 조건을 추가할 수 있습니다.
ALTER TABLE dbo.User
ADD CONSTRAINT ucCodes UNIQUE (fcode, scode, dcode)
테이블 작성에 제약 조건 정의를 사용하면 여러 열에 걸쳐 있는 제약 조건을 하나 이상 지정할 수 있습니다.이 구문은 technet의 매뉴얼에서 간략화되어 다음과 같은 형태로 되어 있습니다.
CONSTRAINT constraint_name UNIQUE [ CLUSTERED | NONCLUSTERED ]
(
column [ ASC | DESC ] [ ,...n ]
)
따라서 재지정 테이블의 정의는 다음과 같습니다.
CREATE TABLE [dbo].[user](
[userID] [int] IDENTITY(1,1) NOT NULL,
[fcode] [int] NULL,
[scode] [int] NULL,
[dcode] [int] NULL,
[name] [nvarchar](50) NULL,
[address] [nvarchar](50) NULL,
CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED
(
[userID] ASC
),
CONSTRAINT [UQ_codes] UNIQUE NONCLUSTERED
(
[fcode], [scode], [dcode]
)
) ON [PRIMARY]
이것은 GUI에서도 실행할 수 있습니다.다음은 기존 테이블에 다중 열 고유 구속조건을 추가하는 예입니다.
- 테이블 아래에서 [인덱스]-> [새 인덱스]-> [클러스터되지 않은 인덱스...]를 오른쪽 클릭합니다.
- 기본 인덱스 이름이 지정되지만 변경할 수도 있습니다.[ Unique ]체크박스를 켜고 [Add...]을 클릭합니다.단추
- 포함할 열을 선택합니다.
각 창에서 확인을 클릭하면 완료됩니다.
USE [TSQL2012]
GO
/****** Object: Table [dbo].[Table_1] Script Date: 11/22/2015 12:45:47 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
[seq] [bigint] IDENTITY(1,1) NOT NULL,
[ID] [int] NOT NULL,
[name] [nvarchar](50) NULL,
[cat] [nvarchar](50) NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_Table_1] UNIQUE NONCLUSTERED
(
[name] ASC,
[cat] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
언급URL : https://stackoverflow.com/questions/3474291/unique-constraint-on-multiple-columns
반응형
'programing' 카테고리의 다른 글
EPPlus의 자동 열 폭 (0) | 2023.04.08 |
---|---|
낮은 버전의 SQL Server 데이터베이스 백업 복원 (0) | 2023.04.08 |
기존 열에 ID 추가 (0) | 2023.04.08 |
SQL Server 복원 오류 - 액세스가 거부되었습니다. (0) | 2023.04.08 |
OPTION(재컴파일)은 항상 고속입니다.그 이유는 무엇입니까? (0) | 2023.04.08 |