0

我在SQL Azure上有一個數據庫,它具有標識主數據庫。 使用SQL Server導入和導出嚮導後,我將數據傳輸到我的SQL Server 2008 R2數據庫。將數據庫從SQL Azure遷移到SQL Server後出現數據插入問題

我的ASP.NET應用程序運行良好並讀取數據。但是,當我嘗試在表'User'中插入值時,它給了我一個錯誤: 無法在'UserId'列中插入空值。

原因是它無法生成身份值。

我該如何解決這個問題?

PS:我試過從SQL Azure生成腳本,但SQL文件的大小爲500MB,我的主機不允許運行一個大腳本。

編輯:使用實體框架進行數據訪問。 UserId字段有一個IDENTITY property(1,1)。

編輯試圖從SQLAzure遷移工具創建模式,然後使用導入/導出數據來複制數據。 但該向導不保持行之間的關係。

回答

0

問題是嚮導試圖插入主鍵值,默認情況下它是禁用的。如果不插入主鍵,則不能保持關係,因此是整個問題。

要解決此問題,並做了簡單的遷移,確保新架構維護所有標識列。

選擇源表和目標表時,對於特定表,單擊「編輯映射」並選中「啓用標識插入」複選框以啓用插入主鍵值,這樣可以保持結構和關係不變。

0

數據導入/導出嚮導不保留數據庫對象的整個結構。

即它只會複製數據,而不是數據所適用的表的整個結構 - 包括身份和密鑰定義。

您可以導入數據,然後手動設置所有主鍵和默認字段以匹配您所需的數據庫定義,或者可以連接到Azure實例並使用生成腳本選項在2008數據庫中生成模式在複製之前。

但真正的答案是,你應該使用Copy Database Wizard做到這一點,這與Azure的正常工作。它是爲這種情況設計的。

+0

按回復,複製數據庫是「導入/導出嚮導」。 我也試着先創建架構,然後導入數據,但在複製的數據之間的關係沒有得到維持。 因此,downvote。 – manishKungwani 2013-03-21 20:42:24

相關問題