안녕하세요...
하루종일 머리를 굴리다가 답이 안나와 글을 올립니다.
한 테이블에 특정 필드 값을 프로그래램에서 끌어다 쓰는데요...
이 테이블의 특정 필드값을 가져올때(SELECT) 다른 값으로 변환해서 가져오고, 또한 이 필드에 값을 추가하거나 수정할때 특정값으로 변환해서 입력하게끔 만들려고 합니다. MS SQL 자체에서 작동할수 있게요...
프로그램은 전혀 손을 대지않고 SQL 자체에서 해결하려고 합니다.
구글링 하다 보니 트리거라는게 있던데 값을 가져올때 반응에 대한 얘기는 없드라구요...
방법있다면 알려주심 너무너무 감사하겠습니다.. ㅠㅜ
Comment 2
-
리퍼스
2015.03.30 13:11
정말이지 너무 감사합니다.. 당장 테스트를 해봐야 겠군요... 소스를 손대지 못하는건 아닌데 같은 프로그램을 20여군데에서 사용하는데 일일이 각각의 서버에 들어가서 모두 소스를 찾아 수정하는게 버겨울것같아 이 방법을 생각한것입니다. 알려주신 위 방법대로 테스트를 해보고 혹시 막히는부분이 있다면 조금이라도 도움 주시면 감사하겠습니다.
즐거운 한주 되세요...
프로그램에 손을 못대는 이유가 뭐죠?
소스가 없어서 리빌드를 못하는 상황인가요?
그게 아니라면 insert, update, delete, select를 모두 스토어드 프로시져로 처리하면
나중에는 프로그램 손대지 않고 원하는 방향으로 수정할 수 있습니다.
소스가 없는 상황이라면...
select에는 트리거라는게 없습니다. insert update delete에만 존재하죠. (또는 ddl)
정확하게 어떤 상황인지는 모르지만 프로그램을 손대지 않고 select할때 다른 값으로 변환할 수 있는 방법은
뷰를 만드는 것입니다.
원래 테이블은 이름을 다른걸로 바꾸고 그 이름으로 뷰를 만들고 여기에 비지니스 로직을 추가하는거죠.
그러면 프로그램에서는 그 뷰를 select하게 되겠죠.
insert update 할때도 원하는 방향으로 값을 수정해서 넣고 싶으면 그 뷰에 instead of trigger를 추가해서 해결 할 수 있습니다.