2009-06-30 2 views
2

두 데이터베이스에 'id', 'name', 'value', 'uniqueConst'열이있는 테이블이 있습니다. 이제는 하나의 데이터베이스에서 다른 db1.uniqueConst = db2.uniqueConst로 '모든 값'필드 만 내보낼 필요가 있습니다. 다른 필드는 이미 DB2에 있으며 'ID는 모두 ID로되어 있으므로 전체 테이블을 내보낼 수 없습니다. 너 나 좀 도와 줄 수있어?하나의 SQL Server 데이터베이스에서 다른 SQL 서버 데이터베이스로 행 값을 내보내는 sql 쿼리

답변

1

MS SQL Server에서 linkedservers을 설정할 수 있습니다.

update 
    [databaseB].dbo.[tableb] 
set 
[databaseB].dbo.[tableb].value = [databaseA].dbo.[tablea].Value 
From 
[databaseA].dbo.[tablea] 
WHERE 
    [databaseA].dbo.[tablea].uniqueConst = [databaseb].dbo.[tableb].uniqueConst 
+0

내가 FROM 다음에 생각의 단지 바로 업데이트가에서 [databaseA] .DBO. TABLEA] 없습니다 [databaseA] .DBO. TABLEA] .Value 수 있지만 해결책은 그래서 덕분에 작동한다. – Tamm

+0

감사를 권고대로 업데이트 함 –

1

당신은 같은 것을 수행 할 수만큼 당신이 데이터베이스와 테이블 모두에 대한 사용 권한을 가지고 ...

USE d2 
UPDATE tablename 
SET value = d1table.value 
FROM tablename d2table INNER JOIN db1.schemaname.tablename d1table 
ON d2table.uniqueConst = d1table.uniqueConst 

을하고, 한 그 이름에서 알 수 있듯이 :

uniqueConst 필드, 고유로

편집 : 데이터베이스가 동일한 인스턴스에 있다고 가정합니다. 그렇지 않은 경우 연결된 서버를 추가하고 네 부분으로 된 표기법을 사용하여 인스턴스 이름을 포함시켜야합니다.

관련 문제