Megosztás:


Adatok átvitele

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-adatbázis a Microsoft Fabricben

Az Transfer osztály egy segédprogramosztály, amely eszközöket biztosít az objektumok és adatok átviteléhez.

Az adatbázissémában lévő objektumok átvitele egy létrehozott szkript végrehajtásával a célkiszolgálón. Table adatok átvitele dinamikusan létrehozott DTS-csomaggal történik.

Az Transfer objektum az SQLBulkCopy API-t használja az adatok átviteléhez. Emellett az adatátvitel végrehajtásához használt metódusok és tulajdonságok az objektum helyett az TransferDatabase objektumon találhatók. A funkciók példányosztályokból segédprogramosztályokra való áthelyezése egy világosabb objektummodellel összhangban van, mivel az adott tevékenységek kódját csak akkor tölti be a rendszer, ha szükség van rá.

Az Transfer objektum nem támogatja az SQL Server-példánynál kisebb verziójú céladatbázisba CompatibilityLevel történő adatátvitelt.

Example

A megadott kód példájának használatához ki kell választania a programozási környezetet, a programozási sablont és azt a programozási nyelvet, amelyben létre szeretné hozni az alkalmazást. További információ: Visual C# SMO-projekt létrehozása a Visual Studio .NET-.

Séma és adatok átvitele az egyik adatbázisból a másikba a Visual Basicben

Ez a példakód bemutatja, hogyan továbbíthat sémát és adatokat az egyik adatbázisból a másikba az Transfer objektum használatával.

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

Séma és adatok átvitele egy adatbázisból egy másikba a Visual C-ben#

Ez a példakód bemutatja, hogyan továbbíthat sémát és adatokat az egyik adatbázisból a másikba az Transfer objektum használatával.

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

Séma és adatok átvitele az egyik adatbázisból a másikba a PowerShellben

Ez a példakód bemutatja, hogyan továbbíthat sémát és adatokat az egyik adatbázisból a másikba az Transfer objektum használatával.

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