Freigeben über


Übertragen von Daten

Die Transfer-Klasse ist eine Dienstprogrammklasse, die Tools zur Übertragung von Objekten und Daten bereitstellt.

Objekte im Datenbankschema werden übertragen, indem ein generiertes Skript auf dem Zielserver ausgeführt wird. Table-Daten werden mit einem dynamisch erstellten DTS-Paket übertragen.

Das Transfer-Objekt enthält die gesamte Funktionalität der Transfer-Objekte in DMO sowie zusätzliche SQL Server-Funktionalität. In SMO verwendet das Transfer-Objekt jedoch DTS für die Datenübertragung. Zudem befinden sich die für die Durchführung von Datenübertragungen verwendeten Methoden und Eigenschaften im Transfer-Objekt statt im Database-Objekt. Das Verschieben von Funktionalität aus den Instanzenklassen in die Dienstprogrammklassen entspricht einem weniger umfangreichen Objektmodell, da der Code für spezifische Aufgaben nur dann geladen wird, wenn er benötigt wird.

Das Transfer-Objekt unterstützt keine Datenübertragungen in eine Zieldatenbank, deren CompatibilityLevel geringer als die Version der SQL Server-Instanz ist.

Dies gilt insbesondere in folgenden Fällen:

  • SQL Server 2005 und SQL Server 2008 unterstützen keine Datenübertragung in Datenbanken, deren CompatibilityLevel-Eigenschaft Version80 entspricht.

  • SQL Server 2005 und SQL Server 2008 unterstützen keine Datenübertragung in Datenbanken, für die SQL Server Version 7.0 ausgeführt wird.

Beispiel

Um die bereitgestellten Codebeispiele verwenden zu können, müssen Sie die Programmierumgebung, die Programmiervorlage und die Programmiersprache wählen, in der die Anwendung erstellt werden soll. Weitere Informationen finden Sie in der SQL Server-Onlinedokumentation unter "Vorgehensweise: Erstellen eines Visual Basic SMO-Projekts in Visual Studio .NET" oder "Vorgehensweise: Erstellen eines Visual C# SMO-Projekts in Visual Studio .NET".

Übertragen von Schema und Daten aus einer Datenbank in eine andere in Visual Basic

In diesem Codebeispiel wird die Übertragung von Schema und Daten mithilfe des Transfer-Objekts von einer Datenbank in eine andere dargestellt.

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

Übertragen von Schema und Daten aus einer Datenbank in eine andere in Visual C#

Dieses Codebeispiel stellt die Übertragung von Schema und Daten mithilfe des Transfer-Objekts von einer Datenbank in eine andere dar.

//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(); 
}