在Microsoft.SqlServer.Management.Smo中找不到C#Transfer

时间:2018-04-17 23:15:49

标签: c# sql-server

我在windows .Net项目中有以下代码作为c#类文件,用于脚本化源SQL Server数据库中的所有数据库对象:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SqlServer.Management.Smo;  

namespace ScriptDatabaseTransferSMO
{
    class SMOObjects
    {

      public static void ScriptDatabase()
        { 
        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();
       }
    }
}

问题是转移xfr;显示错误:类型或命名空间'转移'找不到(你错过了使用指令或汇编引用吗?)

阅读Transfer对象,它应该在dll中并使用Microsoft.SqlServer.Management.Smo引用;

我仍然是C#的新手,有人能指出我缺少使用这个Transfer类吗? thanx

1 个答案:

答案 0 :(得分:3)

您可能需要这些附加组件来安装SMO对象

  1. Microsoft Core XML Services(MSXML)
  2. Microsoft SQL Server Native Client
  3. Microsoft SQL Server系统CLR类型
  4. 这些组件是SQL Server功能包的一部分,SQL Server功能包是一组独立安装包,可为SQL Server提供附加值。确保选择与您的SQL Server版本对应的功能包。

相关问题