Delen via


Transferring Data

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-database in Microsoft Fabric Preview

De Transfer klasse is een hulpprogrammaklasse die hulpprogramma's biedt voor het overdragen van objecten en gegevens.

Objecten in het databaseschema worden overgedragen door een gegenereerd script uit te voeren op de doelserver. Table gegevens worden overgebracht met een dynamisch gemaakt DTS-pakket.

Het Transfer object maakt gebruik van de SQLBulkCopy-API om gegevens over te dragen. De methoden en eigenschappen die worden gebruikt om gegevensoverdrachten uit te voeren, bevinden zich ook op het Transfer object in plaats van het Database object. Het verplaatsen van functionaliteit van de instantieklassen naar hulpprogrammaklassen is consistent met een lichter objectmodel, omdat de code voor specifieke taken alleen wordt geladen wanneer dit vereist is.

Het Transfer object biedt geen ondersteuning voor gegevensoverdracht naar een doeldatabase met een CompatibilityLevel minder dan de versie van het exemplaar van SQL Server.

Example

Als u een codevoorbeeld wilt gebruiken dat is opgegeven, moet u de programmeeromgeving, de programmeersjabloon en de programmeertaal kiezen waarin u uw toepassing wilt maken. Zie Een Visual C# SMO-project maken in Visual Studio .NETvoor meer informatie.

Schema en gegevens overdragen van de ene database naar de andere in Visual Basic

In dit codevoorbeeld ziet u hoe u schema en gegevens van de ene database naar de andere overbrengt met behulp van het Transfer object.

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

Schema en gegevens overdragen van de ene database naar de andere in Visual C#

In dit codevoorbeeld ziet u hoe u schema en gegevens van de ene database naar de andere overbrengt met behulp van het Transfer object.

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

Schema en gegevens overdragen van de ene database naar de andere in PowerShell

In dit codevoorbeeld ziet u hoe u schema en gegevens van de ene database naar de andere overbrengt met behulp van het Transfer object.

#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 AdventureWorks2022 database.  
$db = $srv.Databases["AdventureWorks2022"]  
  
#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()