다음을 통해 공유


데이터 전송

클래스 Transfer 는 개체 및 데이터를 전송하는 도구를 제공하는 유틸리티 클래스입니다.

데이터베이스 스키마의 개체는 대상 서버에서 생성된 스크립트를 실행하여 전송됩니다. Table 데이터는 동적으로 생성된 DTS 패키지와 함께 전송됩니다.

개체에는 Transfer DMO에 있는 개체의 Transfer 모든 기능과 추가 SQL Server 기능이 포함됩니다. 그러나 SQL Server 2012의 SMO에서 개체는 TransferSQLBulkCopy API를 사용하여 데이터를 전송합니다. 또한 데이터 전송을 수행하는 데 사용되는 메서드와 속성은 개체 대신 Database 개체에 Transfer 상주합니다. 인스턴스 클래스에서 유틸리티 클래스로 기능을 이동하는 것은 필요한 경우에만 특정 태스크에 대한 코드가 로드되기 때문에 더 가벼운 개체 모델과 일치합니다.

이 개체는 Transfer SQL Server 인스턴스 버전보다 작은 대상 데이터베이스 CompatibilityLevel 에 대한 데이터 전송을 지원하지 않습니다.

예시

제공된 코드 예제를 사용하려면 프로그래밍 환경, 프로그래밍 템플릿 및 애플리케이션을 만들 프로그래밍 언어를 선택해야 합니다. 자세한 내용은 SQL Server 온라인 설명서에서 "방법: Visual Studio .NET에서 Visual Basic SMO 프로젝트 만들기" 또는 "방법: Visual Studio .NET에서 Visual C# SMO 프로젝트 만들기"를 참조하세요.

Visual Basic에서 한 데이터베이스에서 다른 데이터베이스로 스키마 및 데이터 전송

이 코드 예제에서는 개체를 사용하여 Transfer 한 데이터베이스에서 다른 데이터베이스로 스키마 및 데이터를 전송하는 방법을 보여줍니다.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2012 2008R2 database
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'Create a new database that is to be destination database.
Dim dbCopy As Database
dbCopy = New Database(srv, "AdventureWorks2012Copy")
dbCopy.Create()
'Define a Transfer object and set the required options and properties.
Dim xfr As Transfer
xfr = New Transfer(db)
xfr.CopyAllTables = True
xfr.Options.WithDependencies = True
xfr.Options.ContinueScriptingOnError = True
xfr.DestinationDatabase = "AdventureWorks2012Copy"
xfr.DestinationServer = srv.Name
xfr.DestinationLoginSecure = True
xfr.CopySchema = True
'Script the transfer. Alternatively perform immediate data transfer with TransferData method.
xfr.ScriptTransfer()

Visual C에서 한 데이터베이스에서 다른 데이터베이스로 스키마 및 데이터 전송#

이 코드 예제에서는 개체를 사용하여 Transfer 한 데이터베이스에서 다른 데이터베이스로 스키마 및 데이터를 전송하는 방법을 보여줍니다.

{  
            Server srv;  
            srv = new Server();  
            //Reference the AdventureWorks2012 database   
            Database db;  
            db = srv.Databases["AdventureWorks2012"];  
            //Create a new database that is to be destination database.   
            Database dbCopy;  
            dbCopy = new Database(srv, "AdventureWorks2012Copy");  
            dbCopy.Create();  
            //Define a Transfer object and set the required options and properties.   
            Transfer xfr;  
            xfr = new Transfer(db);  
            xfr.CopyAllTables = true;  
            xfr.Options.WithDependencies = true;  
            xfr.Options.ContinueScriptingOnError = true;  
            xfr.DestinationDatabase = "AdventureWorks2012Copy";  
            xfr.DestinationServer = srv.Name;  
            xfr.DestinationLoginSecure = true;  
            xfr.CopySchema = true;  
            //Script the transfer. Alternatively perform immediate data transfer   
            // with TransferData method.   
            xfr.ScriptTransfer();  
        }   

PowerShell에서 한 데이터베이스에서 다른 데이터베이스로 스키마 및 데이터 전송

이 코드 예제에서는 개체를 사용하여 Transfer 한 데이터베이스에서 다른 데이터베이스로 스키마 및 데이터를 전송하는 방법을 보여줍니다.

#Connect to the local, default instance of SQL Server.  
  
#Get a server object which corresponds to the default instance  
$srv = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server  
  
#Reference the AdventureWorks2012 database.  
$db = $srv.Databases["AdventureWorks2012"]  
  
#Create a database to hold the copy of AdventureWorks  
$dbCopy = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Database -ArgumentList $srv, "AdventureWorksCopy"  
$dbCopy.Create()  
  
#Define a Transfer object and set the required options and properties.  
$xfr = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Transfer -ArgumentList $db  
  
#Set this objects properties  
$xfr.CopyAllTables = $true  
$xfr.Options.WithDependencies = $true  
$xfr.Options.ContinueScriptingOnError = $true  
$xfr.DestinationDatabase = "AdventureWorksCopy"  
$xfr.DestinationServer = $srv.Name  
$xfr.DestinationLoginSecure = $true  
$xfr.CopySchema = $true  
"Scripting Data Transfer"  
#Script the transfer. Alternatively perform immediate data transfer with TransferData method.  
$xfr.ScriptTransfer()