Freigeben über


Übertragen von Daten

Die Transfer Klasse ist eine Hilfsklasse, die Tools zum Übertragen von Objekten und Daten bereitstellt.

Objekte im Datenbankschema werden durch Ausführen eines generierten Skripts auf dem Zielserver übertragen. Table Daten werden mit einem dynamisch erstellten DTS-Paket übertragen.

Das Transfer Objekt enthält alle Funktionen der Transfer Objekte in DMO und zusätzliche SQL Server-Funktionen. In SMO in SQL Server 2012 verwendet das Transfer Objekt jedoch die SQLBulkCopy-API , um Daten zu übertragen. Außerdem befinden sich die Methoden und Eigenschaften, die zum Ausführen von Datenübertragungen verwendet werden, im Transfer Objekt anstelle des Database Objekts. Das Verschieben von Funktionen aus den Instanzklassen in Hilfsklassen ist mit einem helleren Objektmodell konsistent, da der Code für bestimmte Aufgaben nur geladen wird, wenn er erforderlich ist.

Das Transfer Objekt unterstützt keine Datenübertragungen an eine Zieldatenbank, die weniger CompatibilityLevel als die Version der SQL Server-Instanz aufweist.

Beispiel

Um ein codebeispiel zu verwenden, das bereitgestellt wird, müssen Sie die Programmierumgebung, die Programmiervorlage und die Programmiersprache auswählen, in der Ihre Anwendung erstellt werden soll. Weitere Informationen finden Sie unter "How to: Create a Visual Basic SMO Project in Visual Studio .NET" oder "How to: Create a Visual C# SMO Project in Visual Studio .NET" in SQL Server Books Online.

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

In diesem Codebeispiel wird gezeigt, wie Schema und Daten mithilfe des Objekts von einer Datenbank in eine Transfer andere übertragen werden.

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

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

In diesem Codebeispiel wird gezeigt, wie Schema und Daten mithilfe des Objekts von einer Datenbank in eine Transfer andere übertragen werden.

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

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

In diesem Codebeispiel wird gezeigt, wie Schema und Daten mithilfe des Objekts von einer Datenbank in eine Transfer andere übertragen werden.

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