문제

현재 일부 (중요한) 데이터 손상이 발생한 프로젝트를 진행하고 있습니다. 구체적으로 데이터베이스는 대부분의 테이블에서 Guids를 기본 키로 사용하고 있지만 해당 테이블 사이의 데이터 무결성을 시행하지는 않습니다 (오래된 "이 회사에서 다른 회사에서 구입하여 우리의 물건과 통합"토론). 참조 무결성을 도입하려는 노력이 진행 중이지만 데이터를 정리해야합니다.

이 데이터 손상의 일부는 다른 엔티티 키가 잘못된 열로 전환되거나 삽입되었다는 것입니다. 예를 들어, 유효한 "productID"값은 잘못된 열에 잘못된 키를 삽입하는 소프트웨어로 인해 "CustomerID"필드에 존재합니다. 이것은 문제가 마침내 (데이터 집계 작업 중에) 잡히기 전에 데이터베이스에서 몇 달 동안 발생했으며 이제는 정리 노력이 다소 큽니다.

내가 궁금해하는 것은 데이터베이스에서 GUID를 찾는 방법이 있는지 여부입니다. 오히려, 어떤 테이블에서 기본 키라고 생각되는 가이드가 있다면, 알려진 고유 식별기 키 열과 일치하는 T-SQL에 방법이 있습니까?

나는 내가 가진 Guid가 고객이 아니라는 것을 알고 있지만 다른 테이블의 또 다른 주요 키 ID 일 수 있습니다. 지금까지 팀은 다른 테이블을 수동으로 수동으로 검색하여 도적 가이드와 일치하는 키의 "유형"을 찾을 수 있는지 확인했습니다. 그들은 "tableID] = @RogueGuid"명령문이있는 많은 "select * from [table]에서 스크립트를 만들기 위해 갔다. 그러나이 접근법은 그다지 효율적이지 않습니다.

나는이 프로젝트뿐만 아니라 "이 안내서 가이 데이터베이스의 어느 주요 값으로 존재합니까?"라고 생각하기 때문에이 스크립트를 찾고 있습니다. 쿼리 유형은 개발 도구 상자에서 유용한 자산입니다. 모든 도움이 감사합니다.

도움이 되었습니까?

해결책

이것과 비슷한 질문이 생겼고 대답했습니다 여기. 바라건대 이것은 도움이 될 것입니다.

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