SQL Server의 검사 제약 조건은 무엇이며 무엇을 위해 사용되며 무엇을 위해 사용됩니까? 이 기사에서 답을 얻을 수 있습니다.
SQL Server의 Check Constraint check 제약이란 무엇입니까?
SQL Server(Transact-SQL)의 검사 제약 조건을 사용하면 테이블의 각 행에 대한 조건을 정의할 수 있습니다.
참고
- 테스트 제약 조건은 SQL 보기에서 정의할 수 없습니다.
- 테이블의 검사 제약 조건은 해당 테이블의 열을 참조해야 하며 다른 테이블의 열을 참조할 수 없습니다.
- 검사 제약 조건은 하위 쿼리 하위 쿼리를 사용할 수 없습니다.
- 테스트 제약 조건은 CREATE TABLE 또는 ALTER TABLE 명령으로 정의할 수 있습니다.
CREATE TABLE 명령으로 검사 제약 조건 만들기
구문
CREATE TABLE ten_bang
(
cot1 kieudulieu [ NULL | NOT NULL ],
cot2 kieudulieu [ NULL | NOT NULL ],
…
CONSTRAINT ten_rangbuoc
CHECK [ NOT FOR REPLICATION ] (dieu_kien ten_cot)
);
SQL Server의 데이터 유형
ten_bang
체크 제약 조건을 생성하려는 테이블의 이름입니다.
ten_rangbuoc
체크 바인딩에 설정할 이름입니다.
ten_cot
검사 제약 조건이 적용되는 테이블 열입니다.
조건
조건이 충족되어야 합니다.
예:
CREATE TABLE nhanvien
(id_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT id_nhanvien_kiemtra
CHECK (id_nhanvien BETWEEN 1 AND 10000)
);
이 예에서 CREATE TABLE 문은 테이블에 id_nhanvien_kiemtra라는 검사 제약 조건을 생성합니다. 이 제약 조건은 id_nhanvien 정보 필드에 1에서 10000 사이의 값이 포함되도록 합니다.
이것은 또 다른 예입니다.
CREATE TABLE nhanvien
(id_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT luong_kiemtra
CHECK (luong > 0)
);
이 예는 급여가 0보다 크도록 테이블의 체크섬을 확인하는 제약 조건을 만듭니다.
ALTER TABLE 명령으로 검사 제약 조건 만들기
구문
ALTERTABLE ten_bang
ADD CONSTAINT ten_rangbuoc
CHECK (d
ieu_kien ten_cot);
ten_bang
체크 제약 조건을 추가하려는 테이블의 이름입니다.
ten_rangbuoc
체크 바인딩을 위해 설정된 이름입니다.
ten_cot
제약 조건을 확인하는 테이블의 열이 적용됩니다.
조건
제약 조건을 확인하는 조건이 충족되어야 합니다.
예:
이는 ALTER TABLE 명령을 사용하여 SQL Server에서 검사 제약 조건을 만드는 예입니다.
ALTER TABLEnhanvien
ADD CONSTRAINT ho_kiemtra
CHECK (ho IN ('S
mith', 'Anderson', 'Jonas'));
확인 제약 조건 ho_kiemtra가 기존 테이블에 생성되어 직원의 성이 Smith, Anderson 또는 Jonas에 대한 값만 포함되도록 합니다.
검사 제약 조건 삭제
구문
ALTER TABLE ten_bang
DROP
CONSTRAINT ten_rangbuoc
ten_bang
체크 제약 조건을 삭제할 테이블의 이름입니다.
ten_rangbuoc
삭제하려는 바인딩 이름을 확인하십시오.
예:
ALTER TABLE nhanvien
DROP
CONSTRAINT ho_kiemtra;
이 명령은 테이블의 ho_kiemtra 제약 조건을 삭제합니다.
체크 바인딩 활성화
구문
ALTER TABLE ten_bang
WITH CHEC
K CHECK CONSTRAINT ten_rangbuoc;
ten_bang
체크 제약 조건을 다시 활성화할 테이블의 이름입니다.
ten_rangbuoc
검사 제약 조건의 이름을 활성화해야 합니다.
예:
ALTER TABLE nhanvien
WITH CHEC
K CHECK CONSTRAINT luong_kiemtra;
이 예는 테이블의 테이블에 대한 검사 제약 조건을 다시 활성화합니다.
체크 바인딩 비활성화
구문
ALTER TABLE ten_bang
NOCHECK
CONSTRAINT ten_rangbuoc;
ten_bang
검사 제약 조건을 비활성화할 테이블의 이름입니다.
ten_rangbuoc
비활성화하려는 검사 제약 조건의 이름입니다.
예:
ALTER TABLE nhanvien
NOCHECK
CONSTRAINT luong_kiemtra;
이 예는 테이블의 luong_kiemtra에 대한 검사 제약 조건을 비활성화합니다.