當無法我可以通過使用選項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