개발 창고/Database
[MSSQL] How to create a blank, non-inputable column.
로이제로
2024. 1. 2. 22:00
반응형
How to create a blank, non-inputable column.
테이블을 생성하다 보면 NOT NULL 제약조건을 이용하여 컬럼에 NULL이 입력 불가하도록 생성할 수 있습니다. 하지만, 이는 공란까지 입력 불가한 상태는 아니기 때문에 반드시 입력이 필요한 경우에 NOT NULL 만으로 해결되지 않는 경우가 발생합니다.
만약 아래와 같은 NOT NULL인 COL1을 갖는 TEMPTABLE이 있다고 가정한다면
CREATE TABLE TEMPTABLE (
COL1 NVARCHAR(10) NOT NULL
)
여기에 NULL 을 입력하는 경우 아래와 같은 오류가 발생합니다.
INSERT INTO TEMPTABLE (COL1) VALUES (NULL)
하지만 공란을 입력하면 입력되는 것을 확인할 수 있습니다.
# 공란 입력
INSERT INTO TEMPTABLE (COL1) VALUES ('')
# 결과 확인
SELECT *
FROM TEMPTABLE
공란 제한 제약조건 추가
# 기존에 저장된 데이터 중 공란을 포함하는 테이블 처리
# 삭제 또는 공란을 다른 문자로 변환
UPDATE TEMPTABLE
SET COL1 = 'N/A'
WHERE COL1 = ''
# 제약조건 추가
ALTER TABLE TEMPTABLE WITH CHECK
ADD CONSTRAINT CK_TEMPTABLE_COL1 CHECK ((COL1<>N''))
# 테스트) 공란 입력
INSERT INTO TEMPTABLE (COL1) VALUES ('')
반응형