Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL Server

SQL Server에서 제약 조건 확인

SQL Server의 검사 제약 조건은 무엇이며 무엇을 위해 사용되며 무엇을 위해 사용됩니까? 이 기사에서 답을 얻을 수 있습니다.

SQL Server의 Check Constraint check 제약이란 무엇입니까?

SQL Server(Transact-SQL)의 검사 제약 조건을 사용하면 테이블의 각 행에 대한 조건을 정의할 수 있습니다.

참고

  1. 테스트 제약 조건은 SQL 보기에서 정의할 수 없습니다.
  2. 테이블의 검사 제약 조건은 해당 테이블의 열을 참조해야 하며 다른 테이블의 열을 참조할 수 없습니다.
  3. 검사 제약 조건은 하위 쿼리 하위 쿼리를 사용할 수 없습니다.
  4. 테스트 제약 조건은 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

검사 제약 조건이 적용되는 테이블 열입니다.

조건

조건이 충족되어야 합니다.

예:

  CREA TE 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 사이의 값이 포함되도록 합니다.

이것은 또 다른 예입니다.

  CRE ATE 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 명령으로 검사 제약 조건 만들기

구문

  ALTER TABLE ten_bang 
ADD CONSTAINT ten_rangbuoc
CHECK (d ieu_kien ten_cot);

ten_bang

체크 제약 조건을 추가하려는 테이블의 이름입니다.

ten_rangbuoc

체크 바인딩을 위해 설정된 이름입니다.

ten_cot

제약 조건을 확인하는 테이블의 열이 적용됩니다.

조건

제약 조건을 확인하는 조건이 충족되어야 합니다.

예:

이는 ALTER TABLE 명령을 사용하여 SQL Server에서 검사 제약 조건을 만드는 예입니다.

  ALTER TABLE  nhanvien 
ADD CONSTRAINT ho_kiemtra
CHECK (ho IN ('S mith', 'Anderson', 'Jonas'));

확인 제약 조건 ho_kiemtra가 기존 테이블에 생성되어 직원의 성이 Smith, Anderson 또는 Jonas에 대한 값만 포함되도록 합니다.

검사 제약 조건 삭제

구문

  ALTE R TABLE ten_bang 
DROP CONSTRAINT ten_rangbuoc

ten_bang

체크 제약 조건을 삭제할 테이블의 이름입니다.

ten_rangbuoc

삭제하려는 바인딩 이름을 확인하십시오.

예:

  ALTE R TABLE nhanvien 
DROP CONSTRAINT ho_kiemtra;

이 명령은 테이블의 ho_kiemtra 제약 조건을 삭제합니다.

체크 바인딩 활성화

구문

  ALTER TA BLE ten_bang 
WITH CHEC K CHECK CONSTRAINT ten_rangbuoc;

ten_bang

체크 제약 조건을 다시 활성화할 테이블의 이름입니다.

ten_rangbuoc

검사 제약 조건의 이름을 활성화해야 합니다.

예:

  ALTER TA BLE nhanvien 
WITH CHEC K CHECK CONSTRAINT luong_kiemtra;

이 예는 테이블의 테이블에 대한 검사 제약 조건을 다시 활성화합니다.

체크 바인딩 비활성화

구문

  ALTER TA BLE ten_bang 
NOCHECK CONSTRAINT ten_rangbuoc;

ten_bang

검사 제약 조건을 비활성화할 테이블의 이름입니다.

ten_rangbuoc

비활성화하려는 검사 제약 조건의 이름입니다.

예:

  ALTER T ABLE nhanvien 
NOCHECK CONSTRAINT luong_kiemtra;

이 예는 테이블의 luong_kiemtra에 대한 검사 제약 조건을 비활성화합니다.