4
실제 시나리오 : 중복 데이터베이스가 있고 원본 테이블에서 데이터가 이동되지 않은 테이블을 알고 싶습니다. 그런 다음 원본에서 중복 데이터베이스 테이블을 채 웁니다.데이터베이스의 빈 테이블을 식별하고 다른 데이터베이스의 다른 테이블에서 데이터를 삽입하십시오.
SELECT
DBDupl.[dbo].sysobjects.Name, DBDupl.[dbo].sysindexes.Rows FROM
DBDupl.[dbo].sysobjects
INNER JOIN DBDupl.[dbo].sysindexes
ON DBDupl.[dbo].sysobjects.id = DCT_SOURCE_QA.[dbo].sysindexes.id WHERE
type = 'U'
AND DBDupl.[dbo].sysindexes.IndId < 2 and rows= '0'
EXCEPT
SELECT
DBOrig.[dbo].sysobjects.Name, DBOrig.[dbo].sysindexes.Rows FROM
DBOrig.[dbo].sysobjects
INNER JOIN DBOrig.[dbo].sysindexes
ON DBOrig.[dbo].sysobjects.id = DBOrig.[dbo].sysindexes.id WHERE
type = 'U'
AND DBOrig.[dbo].sysindexes.IndId < 2 and rows= '0'
가 지금은 비어있는 테이블에 데이터를 채우려 :
나는 다음 스크립트 작성 (즉 빈 테이블을 찾기) 내 부분적인 해결책을 달성했다. 즉 두 가지 작업을 모두 수행 할 단일 쿼리가 있습니까 (1). 채워지는 테이블을 찾아서 (2). DBOrig에서 DBDupl로 데이터를 채 웁니다. 나는 위의 스크립트로 (1)을 달성했으며 수동으로 데이터를 삽입하고 싶지 않습니다.
필자는 단순히 실행해야하는 SQL 삽입 문을 생성 한 과거의 것을 함께 해킹했습니다. ID 속성을 먼저 제거하고 나중에 다시 열어 본다. –
@AdrianWragg, 이미 중복 데이터베이스를 만들었습니다. 모든 등록 정보가 설정되고 신원 열이 처리되고 다시 시드됩니다. 그러나 데이터 전송 중에 일부 열을 놓쳤습니다. 이제 나머지 열만 채우고 싶습니다. "해킹"이 어떻게 작동했는지 말해 줄 수 있다면 .. –
그냥 확인해보십시오. 그렇지 않으면 열이 전달되지 않은 행의 전체 열 또는 일부 테이블의 전체 내용입니까? –