Condividi tramite


Trasferimento di dati

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

Gli oggetti dello 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 l'oggetto Transfer utilizza DTS 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 di 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 rispetto alla versione dell'istanza di SQL Server.

In particolare:

  • SQL Server 2005 e SQL Server 2008 non supportano il trasferimento di dati in database con la proprietà CompatibilityLevel impostata su Version80.

  • SQL Server 2005 e SQL Server 2008 non supportano il trasferimento di dati in database con SQL Server versione 7.0.

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 all'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 AdventureWorks database
Dim db As Database
db = srv.Databases("AdventureWorks")
'Create a new database that is to be destination database.
Dim dbCopy As Database
dbCopy = New Database(srv, "AdventureWorksCopy")
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 = "AdventureWorksCopy"
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.

//Connect to the local, default instance of SQL Server.

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