쿼리문 질문 있어요! 0 4 2,883

by 손님 [SQLServer] sum [2012.03.06 14:45:24]


필드 a b c  가 있으면

0 0    0

트리거를 쓰지 않고
insert into test(a,b) values(1,2)    insert를 하거나  update 를 하면
a    b c
1    2  3

이런식으로 a+b 의값이 c 에 들어가도록 할수 있는 방법이 트리거 쓰지 않고 있을까요?? 

insert into test(a,b,c) values(1,2,(a+b)) 혹시 몰라서 이렇게 해봤더니 안되더군요 ㅜ

by 느훼훼 [2012.03.06 15:00:46]
제 짧은 생각으로는 그렇게는 안되지 않을까 싶네요.
a와 b는 현재 넣을려고 하는 컬럼이고 insert문 안에다가 1, 2를 넣었지만 실행중(?)에는 그 값을
인식을 못해서 a+b <<< 이런 식으로는 안되지 않을까 싶어요.
프로그램 소스상에 변수를 이용해 values에 값을 넣는거라면 해당 변수 + 변수로 하심 될거고,
그게 안된다면 insert먼저 해준다음에 update를 다시 해주는 식으로 하심 될거 같아요.
insert문 하나로는 안되지 않을까 싶네요~
제 짧은 생각으론 그렇네요.

by 부쉬맨 [2012.03.06 15:13:16]
일단
insert 당시에는 a, b에 대한 값이 존재하지않죠.
느훼훼님말씀처럼
로직적으로으로 변경이나 다른방법을 찾아보시는게좋을뜻합니다.

by 마농 [2012.03.06 15:24:29]

아예 설계를 바꾸시죠.
c 항목 자체를 없애세요.
c 가 필요할때는 a + b AS c 로 조회하세요.
그것이 귀찮다? c 를 포함하는 뷰를 만들어 사용하세요.

by 손님 [2012.03.06 15:30:38]

답변들 너무 감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입