2013-06-14 3 views
0

'Name'및 'ID'열이있는 테이블 T가 있다고 가정합니다. 표 T는 서버 S1 및 S2에 존재하며 각각 (수천 개의 행)에 동일한 데이터를 보유합니다. 이제 'ID'열이 S2의 테이블 T에서 완전히 제거되었다고 가정합니다. 서버 S1에서 T 버전을 사용하여 다시 채우는 가장 효율적인 방법은 무엇입니까?다른 서버의 다른 테이블에서 열의 값 업데이트

답변

1

S1에 대한 링크가 설정되어 있고 S1.T 및 S2.T의 행을 고유하게 식별하는 데 도움이되는 필드 또는 필드 그룹이 있다고 가정하면 UPDATE과 같은 명령문을 발행 할 수 있습니다

UPDATE t2 
    SET t2.id = t1.id 
    FROM T t2 JOIN S1.<dbname>.dbo.T t1 
    ON t2.somefield = t1.somefield 
-- AND t2.otherfield = t1.otherfield 

참고 : 할 SELECT

0

테이블, 난 그냥 다른 서버에 데이터를 사용하여이 테이블을 채우기 위해 SQL 서버 내보내기/가져 오기 마법사를 사용하여 다음 손상된 테이블에서 모든 데이터를 삭제하고 줄 정확히 같은 경우 .

또 다른 옵션은 검색어를 사용하는 것이지만 먼저 linked server을 만들어야합니다. 그 후에 당신은 이런 식으로 할 수 있습니다.

--delete all data from damaged table 
DELETE FROM S2.T 
--copy all data from secondary server 
INSERT INTO S2.T (ID, Name) 
SELECT S1.T.ID, S1.T.Name 
FROM S1.T 

참고 : 귀하의 데이터가 다른 서버에서 정확히 동일하다고 가정합니다. 그렇지 않은 경우 잠재적으로 손상 될 수 있으므로 실행하지 마십시오.

관련 문제