다른 테이블의 열에 종속 된 열에 제약 조건을 추가하고 싶습니다. 예를 들어 테이블 T1에 문자열 열 str1이 있고 테이블 T2에 문자열 열 str2가있는 경우 srt2 - "ok"를 제외하고 str1이 null이되도록합니다.제약 - SQL 서버
0
A
답변
0
당신은 문자열 str1과에 삽입 할 때에 STR2는 "확인"
1
당신은 제약에서 SELECT 사용할 수 없지만 사용자가 동일한 경우, 검사 T1에 (실행 전) 트리거 스크립트를 사용할 수 정의 된 함수가 허용됩니다. 따라서 T2에서 str2를 검색하는 함수를 작성할 수 있습니다. STR2가 '확인되지 않음'때문에,
insert into t2 values ('ok')
insert into t1 values (1,'test') -- Succeeds
insert into t1 values (1,null) -- Succeeds
update t2 set str2 = 'not ok'
insert into t1 values (1,'test') -- Fails
insert into t1 values (1,null) -- Succeeds
세 번째 INSERT가 실패하고 당신은 null 이외의 캐릭터 라인을 삽입하고 있습니다 :
create table t1 (id int, str1 varchar(max))
create table t2 (str2 varchar(10))
go
create function dbo.GetStr2() returns varchar(10)
as
begin
declare @retval varchar(10)
select @retval = str2 from t2
return @retval
end
go
alter table t1 add constraint CheckStr2Constraint
check (str1 is null or dbo.GetStr2() = 'ok');
이 같은 테스트 할 수 있습니다 예를 들면 다음과 같습니다 설정입니다. 오류 메시지는 다음과 같이 표시됩니다.
The INSERT statement conflicted with the CHECK
constraint "CheckStr2Constraint".
관련 문제
- 1. 소문자 제약 - Sql 서버
- 2. sql 제약
- 3. SQL 제약 조건은 SQL 서버에서
- 4. SQL 제약 조건 질문
- 5. SQL : 데이터베이스의 정규화 제약
- 6. 업데이트시 SQL 제약 IGNORE_DUP_KEY가
- 7. MS SQL 브리지 테이블 제약
- 8. SQL 서버 스키마 동기화
- 9. SQL 서버 : 로그 테이블
- 10. SQL 서버 연결된 서버
- 11. 테이블 간의 SQL Server 제약
- 12. 구문 분석 SQL 검사 제약
- 13. sql 고유의 삽입 설정 제약
- 14. SQL CHECK 제약 조건 문제
- 15. 데이터베이스, SQL 서버, SQL 어떤 키?
- 16. SQL 서버 SQL 쿼리
- 17. (SQL 서버)
- 18. SQL 서버
- 19. SQL 서버
- 20. SQL 서버
- 21. SQL 서버 -
- 22. SQL 서버 점검 제한 조건
- 23. SQL 서버 인덱스
- 24. Sql 서버 전자 메일 서버
- 25. SQL 서버 2005, 나는이 오류가 계속 테이블
- 26. T-SQL - SQL 서버 2008
- 27. MyISAM의 제약 조건과 같은 제약 제약 조건
- 28. 제약
- 29. 제약?
- 30. 제약