문제

나는 제목을 공식화하는 방법을 실제로 몰랐습니다. 그러나 이것은 내 문제입니다. 캐시 객체를 업데이트하기 위해 SQLCachedependencies를 사용하고 있습니다. 그러나 이것의 쿼리는 우리가 다소 쉽게 만들고자하는 "복잡한"쿼리입니다.

우리의 첫 번째 생각은 DateChanged와 같은 필드 이름을 추가하고 DateChanged를 사용하여 객체가 실제로 테이블의 모든 열을로드하는 데있어서 실제로 변경되었는지 확인하는 것이 었습니다.

SELECT DateChanged FROM Table1

대신에

SELECT Id, Title, DateChanged, Description FROM Table1

그러나 나는 누군가가 이것을 수행 할 다른 방법이 있는지 또는 변화를 나타내는 열을 지명하는 표준이 있는지 말해 줄 수 있기를 바랐다. "Entity Framework"또는 "Nhibernate"와 같은 프레임 워크는 어떻게 처리합니까?

도움이 되었습니까?

해결책

일반적으로 "타임 스탬프"라고합니다.

다른 팁

이것들은 내가 "감사 가능한"엔티티에서 사용하는 열입니다.

version: hibernate's optimistic concurrency control
createdBy: FK to users
modifiedBy: FK to users
createdAt: timestamp
modifiedAt: timestamp

SQL Server에있는 경우 타임 스탬프 열이 다소 잘못된 이름을 지정하십시오. 열의 변경 사항을 추적하는 데 사용될 수 있지만 그 값은 날짜 또는 시간과 관련이 없습니다. 데이터베이스 내에서 ID Uniqiue로 생각할 수 있습니다. http://msdn.microsoft.com/en-us/library/aa260631.aspx

변경이 발생했는지 알기 위해 Cherouvim의 답변과 같이 두 개의 Timstamp가 필요합니다. 하나는 객체가 생성 될 때 설정되고 다른 하나는 업데이트 트리거를 통해 수정에 따라 설정됩니다. 그것들이 다르면 객체가 편집되었지만 언제 정확히 알 수 없습니다.

SQL Server에서는 동일한 패턴을 사용해야하지만 DateTime 열이 있어야합니다. 그런 다음 MOD 날짜부터 생성 날짜를 빼서 행 날짜를 계산할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top