Partager via


Transfert de données

La Transfer classe est une classe utilitaire qui fournit des outils pour transférer des objets et des données.

Les objets du schéma de base de données sont transférés en exécutant un script généré sur le serveur cible. Table les données sont transférées avec un package DTS créé dynamiquement.

L’objet Transfer contient toutes les fonctionnalités des Transfer objets dans DMO et des fonctionnalités SQL Server supplémentaires. Toutefois, dans SMO dans SQL Server 2012, l’objet Transfer utilise l’API SQLBulkCopy pour transférer des données. En outre, les méthodes et propriétés utilisées pour effectuer des transferts de données résident sur l’objet Transfer au lieu de l’objet Database . Le déplacement des fonctionnalités des classes d’instance vers des classes utilitaires est cohérent avec un modèle objet plus léger, car le code pour des tâches spécifiques est chargé uniquement lorsqu’il est nécessaire.

L’objet Transfer ne prend pas en charge les transferts de données vers une base de données cible qui a une CompatibilityLevel version inférieure à la version de l’instance de SQL Server.

Exemple :

Pour utiliser un exemple de code fourni, vous devez choisir l’environnement de programmation, le modèle de programmation et le langage de programmation dans lequel créer votre application. Pour plus d’informations, consultez « How to : Create a Visual Basic SMO Project in Visual Studio .NET » ou « How to : Create a Visual C# SMO Project in Visual Studio .NET » dans la documentation en ligne de SQL Server.

Transfert de schéma et de données d’une base de données à une autre en Visual Basic

Cet exemple de code montre comment transférer le schéma et les données d’une base de données à l’autre à l’aide de l’objet Transfer .

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

Transfert de schéma et de données d’une base de données à une autre dans Visual C#

Cet exemple de code montre comment transférer le schéma et les données d’une base de données à l’autre à l’aide de l’objet Transfer .

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

Transfert de schéma et de données d’une base de données vers une autre dans PowerShell

Cet exemple de code montre comment transférer le schéma et les données d’une base de données à l’autre à l’aide de l’objet Transfer .

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