2010-08-03 59 views
1

有沒有人設法使用FILESTREAM列傳輸機制?SMO.Transfer和文件流

我的代碼如下:

「ERROR:

Transfer transfer = new Transfer(sourceDatabase); 
transfer.CopyAllObjects = true; 

transfer.DropDestinationObjectsFirst = true; 
transfer.CopySchema = true; 
transfer.CopyData = false; 
transfer.CopyAllTables = true; 
transfer.Options.WithDependencies = true; 

transfer.DestinationServer = server.Name; 
transfer.DestinationDatabase = targetDatabaseName; 

transfer.TransferData(); 

與filestreaming列創建表時,我收到錯誤消息,錯誤碼= -1073548784說明=執行查詢...失敗並出現以下錯誤:「包含FILESTREAM列的表必須具有非NULL唯一ROWGUID列」。可能的失敗原因:查詢問題,「ResultSet」屬性設置不正確,參數設置不正確或連接未正確建立 helpFile = helpContext = 0 idofInterfaceWithError = {C81DFC5A-3 B22-4DA3-BD3B-10BF861A7F9C}「

這很奇怪,因爲源表當然有這些屬性設置。我是否缺少轉移過程的一部分?

回答

1

奇怪的是,這工作得很好:

//transfer.TransferData(); 

System.Collections.Specialized.StringCollection script = transfer.ScriptTransfer(); 

Microsoft.SqlServer.Management.Smo.Database targetDatabase = server.Databases["dbname"]; 
targetDatabase.ExecuteNonQuery(script); 

任何人都可以揭示出這個任意光?爲什麼傳輸失敗,但生成並運行腳本工作正常?

+0

這是解決方案,但我不知道爲什麼。 – DanDan 2010-08-06 13:06:57