테이블 중 하나에 제약 조건을 추가하려고하면 문제가 발생합니다. 나는 상태가 true가되도록 함수를 체크 인하 고 그것이 사실인지에 따라 1 또는 0을 반환하기를 원한다. 컬럼의 값이 NULL 그 오류를 점검 제한 조건 "chk_StateFinished"와 충돌IS NULL에 CHECK 제약 조건 충돌 추가
ALTER TABLE 문을 유발하지만 기능에 내가 확인. 데이터베이스 "databaseName", 테이블 "dbo.Participation"에서 충돌이 발생했습니다.
는 기능이
CREATE FUNCTION CheckStateFinished(@StudentID varchar(10), @CourseID varchar(10), @CoursePeriod varchar(10),
@SchoolYear int, @State varchar(15)) RETURNS int
AS BEGIN
DECLARE @Grade varchar(1)
SELECT @Grade = Grade FROM Participation WHERE StudentID = @StudentID AND CourseID = @CourseID AND CoursePeriod = @CoursePeriod AND SchoolYear = @SchoolYear
RETURN CASE WHEN @State = 'Avslutad' AND @Grade = 'U' OR @Grade IS NULL THEN 0
ELSE 1
END
END
처럼 보인다 그리고 추가 점검 제한 조건은 다음과 같습니다
내가 대신 무엇을해야ALTER TABLE Participation ADD CONSTRAINT chk_StateFinished CHECK (dbo.CheckStateFinished(StudentID, CourseID, CoursePeriod, SchoolYear, _State) = 1)
는 기능에 null의 경우, 또는 내가 뭔가해야 그밖에?
감사합니다. 항상보기 싫은 간단한 것들. – ccb3