Compartilhar via


Transferindo dados

A classe Transfer é uma classe de utilitário que fornece ferramentas para transferir objetos e dados.

Os objetos de um esquema de banco de dados são transferidos pela execução de um script gerado no servidor de destino. Os dados do Table são transferidos com um pacote DTS criado dinamicamente.

O objeto Transfer contém toda a funcionalidade dos objetos Transfer em DMO e a funcionalidade adicional do SQL Server. Porém, no SMO, o objeto Transfer usa DTS para transferir dados. Além disso, os métodos e propriedades usados para executar transferências de dados residem no objeto Transfer em vez de no objeto Database. A movimentação da funcionalidade de classes da instância para classes de utilitário é consistente com um modelo de objeto mais leve, pois o código para tarefas específicas só é carregado quando necessário.

O objeto Transfer não oferece suporte a transferências de dados para um banco de dados de destino que tenha umCompatibilityLevel inferior à versão da instância do SQL Server.

Especificamente,

  • O SQL Server 2005 e o SQL Server 2008 não oferecem suporte a transferências para bancos de dados com a CompatibilityLevel propriedade Version80.

  • O SQL Server 2005 e o SQL Server 2008 não oferecem suporte a transferência para bancos de dados que executam o SQL Server versão 7.0.

Exemplo

Para usar qualquer exemplo de código fornecido, será necessário escolher o ambiente de programação, o modelo de programação e a linguagem de programação para criar o aplicativo. Para mais informações, consulte "Como criar um projeto Visual Basic SMO no Visual Studio .NET" ou "Como criar um projeto Visual C# SMO no Visual Studio .NET" nos Manuais Online do SQL Server.

Transferindo esquema e dados de um banco de dados para outro no Visual Basic

Este exemplo de código mostra como transferir esquema e dados de um banco de dados para outro usando o objeto Transfer.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Create a new database that is to be destination database.
Dim dbCopy As Database
dbCopy = New Database(srv, "AdventureWorks2008R2Copy")
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 = "AdventureWorks2008R2Copy"
xfr.DestinationServer = srv.Name
xfr.DestinationLoginSecure = True
xfr.CopySchema = True
'Script the transfer. Alternatively perform immediate data transfer with TransferData method.
xfr.ScriptTransfer()

Transferindo esquema e dados de um banco de dados para outro no Visual C#

Este exemplo de código mostra como transferir esquema e dados de um banco de dados para outro usando o objeto Transfer.

{
            Server srv;
            srv = new Server();
            //Reference the AdventureWorks2008R2 database 
            Database db;
            db = srv.Databases["AdventureWorks2008R2"];
            //Create a new database that is to be destination database. 
            Database dbCopy;
            dbCopy = new Database(srv, "AdventureWorks2008R2Copy");
            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 = "AdventureWorks2008R2Copy";
            xfr.DestinationServer = srv.Name;
            xfr.DestinationLoginSecure = true;
            xfr.CopySchema = true;
            //Script the transfer. Alternatively perform immediate data transfer 
            // with TransferData method. 
            xfr.ScriptTransfer();
        } 

Transferindo esquema e dados de um banco de dados para outro no PowerShell

Este exemplo de código mostra como transferir esquema e dados de um banco de dados para outro usando o objeto 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 AdventureWorks2008R2 database.
$db = $srv.Databases["AdventureWorks2008R2"]

#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()