트리거 또는 다른 방법을 사용하여 SQL Server Management Studio를 통해 임시 SQL을 실행하는 경우에도 행이 업데이트 될 때 특정 필드가 항상 명시 적으로 설정되도록하는 방법이 있습니까? 구체적으로, 우리 테이블에는 모두 change_note 필드가 있으며, 우리는 항상 필드가 모든 업데이트에 대해 설정되기를 원합니다. 우리가 고려하고 버린 것들 :UPDATE 문에 명시 적 값이 필요합니까?
change_note를 NOT NULL로 설정하십시오. 우리는 그렇게하지만 도움이되지 않습니다. change_note가 초기 값을 가지면 change_note 업데이트를 잊어 버린만큼 많은 UPDATE 문을 실행할 수 있으며 이전 값이 여전히 change_note에 있기 때문에 NOT NULL이 행복하게 유지됩니다.
트리거를 사용하여 이전 버전의 change_note를 change_note의 새 값과 비교합니다. 때로 change_note를 이전과 같게 설정해야합니다. change_note가 변경되도록하는 것이 아니라 모든 업데이트에 명시 적으로 값이 제공되도록하려는 것입니다.
임시 SQL을 실행하는 데 대한 사용 권한을 거부하고 모든 사용자가 저장 프로 시저 API를 통해 데이터를 업데이트하고 해당 테이블을 업데이트하는 모든 SP에 대해 change_note를 필수 매개 변수로 설정합니다. 우리는 너무 많은 ad hoc 질의가 필요합니다.
Stumped! 어떤 아이디어?
감사합니다.
트리거가이를 위해 작동해야합니다. 자세한 내용은 방아쇠 내용을 제안하는 데 도움이됩니다 – JNappi
예를 들어, 추가 필드 change_note가있는 표준 ADDRESS 테이블이 있다고 가정 해보십시오. ADDRESS 테이블의 필드가 업데이트 될 때마다 change_note **가 명시 적으로 제공되어야합니다 **. 여기서 명시 적으로 제공되는 change_note가 이미 행에있는 change_note의 값과 일치하는 경우가 발생하기 때문에 change_note가 명시 적으로 제공되었는지 결정하기 위해 이전 값과 새 값의 차이를 찾을 수 없습니다. –