当无法我可以通过使用选项CopyAllTables =真,而不是提供在链表类列表从源DB的所有数据传输到目标DB。通过SMO Transfering数据使用链表类
ServerConnection conn = new ServerConnection(sourceServer);
conn.LoginSecure = true;
Server srvSource = new Server(conn);
Database dbSource = srvSource.Databases[sourceDB];
Transfer xfr = new Transfer(dbSource);
xfr.CopyAllTables = true;
xfr.Options.WithDependencies = false;
xfr.Options.ContinueScriptingOnError = false;
xfr.DestinationDatabase = destDB;
xfr.DestinationServer = destServer;
xfr.Options.DriAllKeys = true;
xfr.Options.DriForeignKeys = true;
xfr.DestinationLoginSecure = true;
xfr.CopySchema = false;
xfr.CopyData = true;
xfr.TransferData();
这个工作和所有的数据被复制到目标数据库。我需要从复制过程中排除一个表。我试图
ServerConnection conn = new ServerConnection(sourceServer);
conn.LoginSecure = true;
Server srvSource = new Server(conn);
Database dbSource = srvSource.Databases[sourceDB];
Transfer xfr = new Transfer(dbSource);
xfr.CopyAllTables = false;
xfr.Options.WithDependencies = false;
xfr.Options.ContinueScriptingOnError = false;
xfr.DestinationDatabase = destDB;
xfr.DestinationServer = destServer;
xfr.Options.DriAllKeys = true;
xfr.Options.DriForeignKeys = true;
xfr.DestinationLoginSecure = true;
foreach (Table tb in dbSource.Tables)
{
if (tb.IsSystemObject == false && tb.Name != "ExcludedTable")
{
xfr.ObjectList.Add(tb);
}
}
xfr.CopySchema = false;
xfr.CopyData = true;
xfr.TransferData();
当TransferData叫我得到一个异常“System.NullReferenceException”,并没有数据被转移
{"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."}
[System.NullReferenceException]: {"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
HResult: -2147467261
InnerException: null
Message: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Source: "Microsoft.SqlServer.SmoExtended"
StackTrace: " bei Microsoft.SqlServer.Management.Smo.Transfer.GetObjectList()\r\n
bei Microsoft.SqlServer.Management.Smo.Transfer.Microsoft.SqlServer.Management.Common.ITransferMetadataProvider.SaveMetadata()\r\n
bei Microsoft.SqlServer.Management.Dts.DtsTransferProvider.Configure(ITransferMetadataProvider metadataProvider)\r\n
bei Microsoft.SqlServer.Management.Smo.Transfer.GetTransferProvider()\r\n
bei Microsoft.SqlServer.Management.Smo.Transfer.TransferData()\r\n
TargetSite: {Microsoft.SqlServer.Management.Smo.DependencyCollection GetObjectList()}
,如何排除“ExcludedTable”从出口?
很难看到有什么异常的话,它是在德国,它不涉及任何线在你的代码中的异常从哪里来。任何机会,你可以用英语获得这种例外,并在适当的情况下表明例外发生在哪里? – 2014-10-10 19:43:15
@TT它不是设置为object.'您可以在http://www.finderr.net翻译的实例只是'对象引用。 – 2014-10-10 19:55:36
尝试设置也'xfr.CopyAllObjects = FALSE;' – 2014-10-10 20:05:03