한 서버의 데이터베이스에서 다른 서버의 데이터베이스로 데이터를 이식하고 싶습니다. 데이터베이스는 모두 다른 mssql 2005 서버에 있습니다. 대상 데이터베이스가 [시간 간격]을 기준으로 처음부터 생성되므로 복제는 옵션이 아닙니다.
바람직하게는 다음과 같은 일을 할 것입니다
insert *
from db1/table1
into db2/table2
where rule1 = true
이 스크립트에서는 연결 자격 증명이 일부 사용되는 것이 분명합니다.
당신이하고 싶은 것은 this msdn article에 따라 연결된 서버를 만드는 것입니다. 그런 다음 4 개의 부품 이름을 사용하여 선택합니다. 예 :
Select * From ServerName.DbName.SchemaName.TableName
다음과 같이 Open Data Source를 사용할 수 있습니다.
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
SELECT *
FROM OPENDATASOURCE('SQLOLEDB',
'Data Source=<Ip Of Your Server>;
User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>
Go
글쎄, 나는 복제에 대한 당신의 의견에 동의하지 않습니다. 처음부터 데이터베이스를 작성하여 복제를 시작할 수 있으며 사용 가능한 클라이언트 데이터베이스를 업데이트하거나 데이터베이스를 다시 작성하여 업데이트를 수행하도록 제어 할 수 있습니다.
자동 복제는 키와 관계를 자동으로 관리하여 작업을 용이하게합니다.
가장 쉬운 방법은 MSSQL Server Studio를 통해 스냅 샷 복제를 시작하고 T-SQL 관련 스크립트 (예 : 게시 및 구독에 대한 해당 T-SQL 지침)를 가져 와서 작업의 일부로 이러한 스크립트를 기록하는 것입니다. SQL 에이전트의 작업 목록 또는 복제 폴더의 복제 작업.
SQL Server Integration Services (SSIS)는 옵션입니까? 그렇다면 사용하겠습니다.
연결된 서버 경로로 이동할 수 있습니다.
select *를 사용할 수 없으므로 select에 삽입해야합니다.
복제가 잘되지 않으면 수정이 어려울 수 있고 제대로 관리하지 않으면 다른 문제가 발생할 수 있으므로 복제 경험이 없으면 복제를 피할 수 있습니다.
데이터베이스가 작은 경우 특히 간단하게 유지하십시오.
데이터베이스의 전체 내용을 한 서버에서 다른 서버로 또는 몇 개의 테이블에서 일부 데이터로 전송 하시겠습니까?
두 옵션 모두 SSIS는 특히 정기적으로 전송을 계획하는 경우 작업을 수행합니다.
1 또는 2 테이블의 일부 데이터를 복사하고 SQL Management Studio에서 TSQL을 사용하여 데이터를 선호하는 경우 pelser가 제안한대로 연결된 서버를 사용할 수 있습니다
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
데이터 변환 서비스를 사용하여 작업을 수행 할 수 있습니까? 이를 통해 이러한 종류의 작업을 수행 할 수있는 모든 종류의 볼트 도구가 제공됩니다.
Microsoft 웹 사이트에서 SQL Server 2005 기능 팩을 다운로드 할 수 있습니다 here