Transfert de données
La classe Transfer 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. Les données Table sont transférées avec un package DTS créé dynamiquement.
L'objet Transfer contient toutes les fonctionnalités des objets Transfer dans DMO, de même que des fonctionnalités SQL Server supplémentaires. Toutefois, dans SMO, dans SQL Server 2012, l'objet Transfer utilise l'API SQLBulkCopy pour le transfert de données. Par ailleurs, les méthodes et les propriétés utilisées pour effectuer les transferts de données résident sur l'objet Transfer et non sur l'objet Database. Le déplacement de fonctionnalités des classes d'instance vers les classes utilitaires est compatible avec un modèle objet plus léger car le code de tâches spécifiques est chargé uniquement lorsqu'il est requis.
L'objet Transfer ne prend pas en charge les transferts de données vers une base de données cible dont un CompatibilityLevel est inférieur à la version de l'instance de SQL Server.
Exemple
Pour utiliser un exemple de code fourni, vous devrez sélectionner l'environnement, le modèle et le langage de programmation dans lesquels créer votre application. Pour plus d'informations, consultez « Procédure : créer un projet Visual Basic SMO dans Visual Studio .NET » ou « Procédure : créer un projet Visual C# SMO dans 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 vers une autre en Visual Basic
Cet exemple de code indique comment transférer un schéma et des données d'une base de données vers une 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 vers une autre en Visual C#
Cet exemple de code indique comment transférer un schéma et des données d'une base de données vers une 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 indique comment transférer un schéma et des données d'une base de données vers une 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()