Trasferimento di dati

La classe Transfer è una classe di utilità che fornisce gli strumenti per trasferire oggetti e dati.

Gli oggetti nello schema del database vengono trasferiti eseguendo uno script generato sul server di destinazione. I dati Table vengono trasferiti con un pacchetto DTS creato dinamicamente.

L'oggetto Transfer contiene tutte le funzionalità degli oggetti Transfer in DMO e altre funzionalità di SQL Server. Tuttavia, in SMO di SQL Server 2012, l'oggetto Transfer utilizza l'API SQLBulkCopy per trasferire i dati. Inoltre, i metodi e le proprietà utilizzati per eseguire trasferimenti di dati si trovano nell'oggetto Transfer anziché nell'oggetto Database. Lo spostamento delle funzionalità dalle classi di istanze alle classi di utilità è coerente con un modello a oggetti semplificato poiché il codice per le attività specifiche viene caricato solo quando è richiesto.

L'oggetto Transfer non supporta trasferimenti di dati in un database di destinazione con una proprietà CompatibilityLevel inferiore alla versione dell'istanza di SQL Server.

Esempio

Per utilizzare qualsiasi esempio di codice fornito, è necessario scegliere l'ambiente di programmazione, il modello di programmazione e il linguaggio di programmazione per la creazione dell'applicazione. Per ulteriori informazioni, vedere "Procedura: Creare un progetto Visual Basic SMO in Visual Studio .NET" o "Procedura: Creare un progetto Visual C# SMO in Visual Studio .NET" nella documentazione online di SQL Server.

Trasferimento di schemi e dati da un database a un altro in Visual Basic

In questo esempio di codice viene illustrato come trasferire schemi e dati da un database all'altro utilizzando l'oggetto 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()

Trasferimento di schemi e dati da un database all'altro in Visual C#

In questo esempio di codice viene illustrato come trasferire schemi e dati da un database all'altro utilizzando l'oggetto 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();
        } 

Trasferimento di schemi e dati da un database all'altro in PowerShell

In questo esempio di codice viene illustrato come trasferire schemi e dati da un database all'altro utilizzando l'oggetto 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()