有時,當嘗試使用Sync Framework 2.1從SQL Express同步到SQL Server時,出現以下錯誤。一旦客戶得到這個錯誤,他們必須重新初始化範圍。像錯誤狀態這樣的語法不會有任何問題,因爲它在很長一段時間內沒有問題(插入發生)。有什麼想法嗎?BulkInsertCommand在Sync Framework 2.1中失敗
11:18:21 AM無法對錶'XXX'執行'BulkInsertCommand'命令;該交易被回滾。確保命令語法是正確的。 上午11時18分21秒Microsoft.Synchronization 上午11時18分21秒在Microsoft.Synchronization.Data.ChangeHandlerBase.CheckZombieTransaction(字符串命令名,字符串表,異常前)
從跟蹤日誌:
警告,OfflineAgentMonitor.vshost,13,2011年4月13日11:16:17:224,批量命令BulkUpdateCommand失敗,出現以下異常。在單次應用期間,行將被重試。 System.Data.SqlClient.SqlException(0x80131904):嘗試傳遞19列的表值參數,其中相應的用戶定義的表類型需要20列。
您是否有針對同一個表定義的多個範圍? – JuneT 2011-04-05 12:00:31
不,我只定義了一個範圍。所有表格都不會發生這種情況。 – AKoran 2011-04-05 12:42:46
,嘗試將用戶定義的表類型(在Programmability-> Types-> User-Defined Table Types下)中的列與同步對的兩側的bulkinsert和bulkupdate存儲過程進行比較。如果表UDT和存儲的proc具有不同的列計數,因此在同步夥伴之間配置和保持兩個範圍定義同步時必定存在問題。這解釋了爲什麼重新設置範圍會修復該問題,因爲正在使用表UDT中的適當數量的匹配列和每個同步方上存儲的特效重新創建範圍。 – JuneT 2011-04-05 13:09:19