传输数据

Transfer 类是一个实用工具类,它提供用于传输对象和数据的工具。

通过在目标服务器上执行生成的脚本可以传输数据库架构中的对象。使用动态创建的 DTS 包传输 Table 数据。

Transfer 对象除包含 DMO 中的 Transfer 对象的所有功能之外,还包含其他 SQL Server 功能。不过在 SMO 中,Transfer 对象使用 DTS 传输数据。同样,用于执行数据传输的方法和属性驻留在 Transfer 对象中,而不是 Database 对象中。将功能从实例类移到实用工具类符合轻型对象模型,因为仅在需要特定任务的代码时才加载它们。

Transfer 对象不支持向 CompatibilityLevel 低于 SQL Server 的实例版本的目标数据库传输数据。

具体而言,

  • SQL Server 2005 和 SQL Server 2008 不支持向 CompatibilityLevel 属性为 Version80 的数据库传输数据。

  • SQL Server 2005 和 SQL Server 2008 不支持向运行 SQL Server 版本 7.0 的数据库传输数据。

示例

若要使用所提供的任何代码示例,您必须选择创建应用程序所需的编程环境、编程模板和编程语言。 有关详细信息,请参阅 SQL Server 联机丛书中的“How to: Create a Visual Basic SMO Project in Visual Studio .NET”或“How to: Create a Visual C# SMO Project in Visual Studio .NET”。

在 Visual Basic 中于数据库之间传输架构和数据

此代码实例说明如何使用 Transfer 对象在数据库之间传输架构和数据。

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks database
Dim db As Database
db = srv.Databases("AdventureWorks")
'Create a new database that is to be destination database.
Dim dbCopy As Database
dbCopy = New Database(srv, "AdventureWorksCopy")
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 = "AdventureWorksCopy"
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 对象在数据库之间传输架构和数据。

//Connect to the local, default instance of SQL Server.

{ 
   Server srv = default(Server); 
   srv = new Server(); 
   //Reference the AdventureWorks database 
   Database db = default(Database); 
   db = srv.Databases("AdventureWorks"); 
   //Create a new database that is to be destination database. 
   Database dbCopy = default(Database); 
   dbCopy = new Database(srv, "AdventureWorksCopy"); 
   dbCopy.Create(); 
   //Define a Transfer object and set the required options and properties. 
   Transfer xfr = default(Transfer); 
   xfr = new Transfer(db); 
   xfr.CopyAllTables = true; 
   xfr.Options.WithDependencies = true; 
   xfr.Options.ContinueScriptingOnError = true; 
   xfr.DestinationDatabase = "AdventureWorksCopy"; 
   xfr.DestinationServer = srv.Name; 
   xfr.DestinationLoginSecure = true; 
   xfr.CopySchema = true; 
   //Script the transfer. Alternatively perform immediate data transfer 
   // with TransferData method. 
   xfr.ScriptTransfer(); 
}