Передача данных
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL Azure Synapse Analytics в Microsoft Fabric
Класс Transfer является служебным классом, наделенным средствами для передачи объектов и данных.
Объекты в схеме базы данных передаются в ходе выполнения сформированного скрипта на целевом сервере. Данные Table передаются вместе с динамически созданным пакетом DTS.
Объект Transfer использует API SQLBulkCopy для передачи данных. Кроме того, методы и свойства, используемые для передачи данных, располагаются в объекте Transfer, а не в объекте Database. Перенос функциональных возможностей с экземпляров классов на вспомогательные классы согласуется с облегченной объектной моделью, поскольку код для выполнения конкретных задач загружается только по мере необходимости.
Объект Transfer не поддерживает передачу данных в целевую базу данных с CompatibilityLevel меньшей версией экземпляра SQL Server.
Пример
Чтобы использовать какой-либо из представленных примеров кода, нужно выбрать среду, шаблон и язык программирования, с помощью которых будет создаваться приложение. Дополнительные сведения см. в статье "Создание проекта SMO Visual C# в Visual Studio .NET".
Передача схемы и данных из одной базы данных в другую на языке Visual Basic
Этот пример кода показывает, как передавать схему и данные из одной базы данных в другую с помощью объекта Transfer.
'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()
Передача схемы и данных из одной базы данных в другую на языке Visual C#
Этот пример кода показывает, как передавать схему и данные из одной базы данных в другую с помощью объекта Transfer.
{
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();
}
Передача схемы и данных из одной базы данных в другую в PowerShell
Этот пример кода показывает, как передавать схему и данные из одной базы данных в другую с помощью объекта 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 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()