我在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
答案 0 :(得分:3)
您可能需要这些附加组件来安装SMO对象
这些组件是SQL Server功能包的一部分,SQL Server功能包是一组独立安装包,可为SQL Server提供附加值。确保选择与您的SQL Server版本对应的功能包。