傳送資料
Transfer 類別是一種公用程式類別,可提供工具來傳送物件和資料。
資料庫結構描述中物件的傳送方式是藉由執行目標伺服器上產生的指令碼。Table 資料會隨著動態建立的 DTS 封裝一起傳送。
Transfer 物件包含了 DMO 中 Transfer 物件的所有功能和其他 SQL Server 功能。但是在 SMO 中,Transfer 物件會使用 DTS 來傳送資料。此外,用來執行資料傳送的方法和屬性是位於 Transfer 物件上,而不是 Database 物件上。將功能從執行個體類別移到公用程式類別與較輕的物件模型一致,因為只有在需要時才會載入特定工作的程式碼。
Transfer 物件不支援將資料傳送到 CompatibilityLevel 小於 SQL Server 執行個體版本的目標資料庫。
尤其是
SQL Server 2005 和 SQL Server 2008 不支援使用 Version80 的 CompatibilityLevel 屬性將資料傳送到資料庫。
SQL Server 2005 和 SQL Server 2008 不支援將資料傳送到執行 SQL Server 7.0 版的資料庫。
範例
如果要使用所提供的任何程式碼範例,您必須選擇建立應用程式用的程式設計環境、程式設計範本,及程式設計語言。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<如何:在 Visual Studio .NET 中建立 Visual Basic SMO 專案>或<如何:在 Visual Studio .NET 中建立 Visual C# SMO 專案>。
在 Visual Basic 中將結構描述和資料從某個資料庫傳送到另一個資料庫
此程式碼範例示範如何使用 Transfer 物件,將結構描述和資料從某個資料庫傳送到另一個資料庫。
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Create a new database that is to be destination database.
Dim dbCopy As Database
dbCopy = New Database(srv, "AdventureWorks2008R2Copy")
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 = "AdventureWorks2008R2Copy"
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 AdventureWorks2008R2 database
Database db;
db = srv.Databases["AdventureWorks2008R2"];
//Create a new database that is to be destination database.
Database dbCopy;
dbCopy = new Database(srv, "AdventureWorks2008R2Copy");
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 = "AdventureWorks2008R2Copy";
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 AdventureWorks2008R2 database.
$db = $srv.Databases["AdventureWorks2008R2"]
#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()