Q&A

  • ms_sql에관한 질문입니다
안녕들 하시죠?

우선, 저는 MS-SQL7.0으ㅡ 쓰고 있고요.

테이블중에서 가장 기본이 되는 테이블 있죠? 다른 테이블에서 참조하는



예를 들자면, <회원관리 프로그램>에세의 [회원정보테이블] 이라던가

<급여프로그램>의 <사원정보테이블>이라던가 하는 테이블이요.



프로그램을 만들때 이 테이블의 레코드는 삭제할 수 없게 만들어야 하나요?



이 테이블의 Primary key를 다른 테이블들에서(테이블이 많습니다.) Foreign key로 쓰기땜에 삭제하면 삭제할 수 없다는 메세지가 뜹니다.



그래서, trigger를 생성해서 사용하려고 했지만, Trigger 생성은 되지만

실제로, 삭제를 하려하면, 역시나 안되더군요.

Trigger에서는 Constraint로 잡힌것은 실행시 작동을 안하나요?



제가 알고픈건, 이럴때 원래 삭제방지를 시켜야 하는지?

아님, 삭제할 어떤 방법이 있는지?

그것입니다.



참조하는 모든테이블에서 해당하는 데이터를 모두 지우고 기본테이블을 지우란 말씀은 하지 말아주시고요...^^*



답변 기다리겠습니다.

1  COMMENTS
  • Profile
    linuxwiz 2000.09.20 00:18
    푸하하 wrote:

    > 안녕들 하시죠?

    > 우선, 저는 MS-SQL7.0으ㅡ 쓰고 있고요.

    > 테이블중에서 가장 기본이 되는 테이블 있죠? 다른 테이블에서 참조하는

    >

    > 예를 들자면, <회원관리 프로그램>에세의 [회원정보테이블] 이라던가

    > <급여프로그램>의 <사원정보테이블>이라던가 하는 테이블이요.

    >

    > 프로그램을 만들때 이 테이블의 레코드는 삭제할 수 없게 만들어야 하나요?

    >

    > 이 테이블의 Primary key를 다른 테이블들에서(테이블이 많습니다.) Foreign key로 쓰기땜에 삭제하면 삭제할 수 없다는 메세지가 뜹니다.

    >

    > 그래서, trigger를 생성해서 사용하려고 했지만, Trigger 생성은 되지만

    > 실제로, 삭제를 하려하면, 역시나 안되더군요.

    > Trigger에서는 Constraint로 잡힌것은 실행시 작동을 안하나요?

    >

    > 제가 알고픈건, 이럴때 원래 삭제방지를 시켜야 하는지?

    > 아님, 삭제할 어떤 방법이 있는지?

    > 그것입니다.

    >

    > 참조하는 모든테이블에서 해당하는 데이터를 모두 지우고 기본테이블을 지우란 말씀은 하지 말아주시고요...^^*

    >

    > 답변 기다리겠습니다.





    마스터, 디테일 관계는 비지니스 로직의 문제이지여...



    마스터를 삭제하면, 디테일을 모두 삭제한다거나..

    위에 얘기한것처럼,, 디테일을 모두 삭제한 후에 마스터를 모두 삭제한다거나..

    그것을 결정하는 것은 프로그래머가 아니구여,,, 그것을 사용하는 회사의 업무규칙에 관한겁니다..,



    회사에서 마스터를 날려두 상관없다구 하면,,, 회의록에 사인 받구,,,

    날리는 프로시저만들어주면 되는 겁니다..

    물론 멍청한(?) 현업을 가르치셔야 될 필요도 있긴 하지만여...^^;