2010-03-06 5 views
2

t-SQL에 CHECK 제약 조건을 사용하여 데이터 유효성 검사를 수행하고 어떻게 든 점검 제한 조건을 통과하지 못한 데이터를 표시 할 수있는 방법이 있나요?체크 제약 조건 정의 메시지

답변

2

CHECK 제약 조건을 사용하여 데이터 유효성 검사를 수행 할 수있는 방법이 있나요합니다. ..

네, CHECK 제약위한 것입니다 : 임

... 그리고 체크 제약 조건을 통과하지 못한 데이터를 어떻게 보이는지 보여주기 위해서?

아니요. 제공되는 데이터가 CHECK 제약 조건 요구 사항을 충족시키지 못하면 오류 제약 조건에서 다시 얻게되는 정보 만 오류 메시지입니다. 데이터를 검토하는 것은 귀하에게 달려 있습니다.

트리거는 로깅 테이블에 시도 된 데이터를 리디렉션 할 수있는 능력을 가지고, 다음 가능성이 옵션이 될 것입니다.

2

당신은 제약 조건에 정의 된 테이블에 체크 제약에서 논리를 사용하는 선택을 실행할 수 있습니다.

반환 된 행은 유효성 검사를 통과하지 않을 사람이 될 것입니다.

다음 표와 CHECK 제약 조건 정의하는 경우 :

IF OBJECT_ID ('dbo.Vendors', 'U') IS NOT NULL 
DROP TABLE dbo.Vendors; 
GO 
CREATE TABLE dbo.Vendors 
    (VendorID int PRIMARY KEY, VendorName nvarchar (50), 
    CreditRating tinyint) 
GO 
ALTER TABLE dbo.Vendors ADD CONSTRAINT CK_Vendor_CreditRating 
    CHECK (CreditRating >= 1 AND CreditRating <= 5) 

당신은 행이 방법을 선택할 수 있습니다

SELECT VendorID 
FROM dbo.Vendors 
WHERE (CreditRating >= 1 AND CreditRating <= 5) 
+0

글쎄, 내가 원하는 삽입/업데이트 작업 후 잘못된 데이터를 얻을 수 있습니다. – Markus

+1

CHECK 제약 조건이 실패하면 삽입/업데이트되지 않습니다. CHECK 제약 조건은 데이터의 어떤 비트가 실패했는지 알려주지 않습니다. DB로 보내기 전에 코드에서 확인해야합니다. – Oded