본문 바로가기
DataBase/MsSql

MSSQL default 제약 조건 추가,삭제 사용법 및 설명

by 아우럼 2024. 3. 12.
반응형

Column에 default 제약 조건을 설정하면, 레코드를 입력할 때 해당 필드에 값을 생략해도 dafault로 설정한 기본값으로 넣어주는 제약조건입니다.

 

Default 제약조건 개념

  • column에 제약조건을 이용하여 기본값을 설정하는 방법입니다.
  • 그럼 이후 데이터를 추가할 때 해당 column에 값을 지정하지 않아도 기본값이 자동으로 채워집니다.
  • 예를 들어, 여자고등학교에서 학사 관련 테이블에 성별을 넣는 column의 default는 여성으로 설정할 수 있습니다.

Default 제약조건 생성 방법

테이블 생성하면서 column에 Default 제약조건 설정.

예시코드.
CREATE TABLE [테이블명] (
[column1] [dataType],
[column1] [dataType] DEFAULT '기본값',
[column3] [dataType],
);

 

USE sampleDB;
DROP TABLE IF EXISTS womanSchool;
CREATE TABLE womanSchool (
    ID int NOT NULL,
    LastName varchar(255),
    FirstName varchar(255),
    GenderClass varchar(10) default 'woman'
);

-- 확인 소스.
insert into womanSchool(ID,LastName,FirstName)
values(202401,'john','hub');

SELECT *
 FROM womanSchool with(nolock);

 

Default 제약 조건 생성 및 확인 예제.

테이블 생성 후 Default 제약조건 생성.

예시코드.
ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] DEFAULT ('기본값') FOR [column name];

 

USE sampleDB;
DROP TABLE IF EXISTS womanSchool;
CREATE TABLE womanSchool (
    ID int NOT NULL,
    GenderClass varchar(10) 
);
ALTER TABLE [womanSchool]
ADD CONSTRAINT [df_womanSchool_GenderClass] DEFAULT ('woman') FOR [GenderClass];

 

신규 column을 추가 시 Default 제약조건 설정.

Default 제약조건 이름이 자동으로 생성돼서 나중에 관리가 안 되는 경우 있습니다.

column 생성 후 dafault 설정해 주는 것을 추천합니다.

예시코드.
ALTER TABLE [테이블명] ADD [column1] [dataType] DEFAULT [기본값];

USE sampleDB;
DROP TABLE IF EXISTS womanSchool;
CREATE TABLE womanSchool (
    ID int NOT NULL 
);

ALTER TABLE [womanSchool] ADD GenderClass varchar(10)  DEFAULT 'woman';

 -- 확인 소스.
insert into womanSchool(ID)
values(202401);

SELECT *
 FROM womanSchool with(nolock);

 

Default 제약조건 확인

명령어 예시 코드.

EXEC SP_HELP [테이블명];

EXEC SP_HELP womanSchool;

 

Default 제약 조건 명령어로 확인하는 첫 번째 방법.

스키마를 이용하여 제약조건 확인.

Default 제약조건 소스코드 확인.

select schema_name(t.schema_id) + '.' + t.[name] as table_nm
	 ,col.[name] as column_nm
	 ,con.[name] as constraint_nm 
	 ,con.[definition] as df_value
from sys.default_constraints con
left outer join sys.objects t
on con.parent_object_id = t.object_id
left outer join sys.all_columns col
on con.parent_column_id = col.column_id
and con.parent_object_id = col.object_id 
order by con.name;

 

 

Default 제약 조건 스키마를 통해서 확인하는 방법.

 

Default 제약조건 이름으로 삭제

Default 제약조건 예시코드

ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건명];

ALTER TABLE womanSchool DROP df_womanSchool_GenderClass;

 

반응형