2010-01-27 88 views
1

我想使用C#將現有的SQL Server 2008數據庫模式(而不是數據)複製到同一服務器上的新數據庫(即MyDB => MyDB_Test)。如何通過C#代碼複製SQL Server 2008數據庫

我發現一些示例代碼在http://www.codeproject.com/KB/cs/CopyDBSchemaUsingSMO.aspx,似乎做我想要什麼,但它一直扔在ddatabase.Create()線以下錯誤:

Could not load file or assembly 'Microsoft.SqlServer.BatchParser, 
Version=9.0.242.0, Culture=neutral, 

PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.":"Microsoft.SqlServer.BatchParser, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"

我試圖尋找失蹤的DLL,但我只能找到SQL Server 2005的一個版本。我不確定我是否應該使用它,尋找替代下載或採取完全不同的方法。

任何幫助將不勝感激!

回答

0

的幾點春天在腦海中,我認爲是需要考慮的事情:

這聽起來像這不會是一次性的,但你想更多occassions做一些事情,所以我會建議:

  1. 保持整個數據庫創建腳本並運行這些。恕我直言,這是源控件中有反正是好事
  2. 有數據庫(模板複製本質上)的乾淨(空)備份和恢復,作爲一個新的DB
1

我見過未完成的SQL Server 2008組件在計算機上的安裝 - 在這種情況下,只需轉到Microsoft's download site並在合適的版本(x86 32位或64位或IA64)中抓住Microsoft SQL Server 2008 Management Objects(稍低於中間位置) 64位 - 取決於您的需求)。

安裝並重試。

您可能想要考慮的其他事情是購買和使用現有工具,而不是自己編寫所有代碼。查看例如Red-Gate的SQL Compare可以讓你做到這一點 - 比較兩個數據庫(他們的結構),並確保他們都在同一水平。

+0

感謝您的快速回答。我現在就看看。至於我需要在代碼中做到這一點,我需要它自動集成測試... – 2010-01-27 15:38:37

+0

我安裝了管理對象,但仍然收到錯誤:「無法加載文件或程序集」Microsoft.SqlServer.BatchParser,版本= 9.0.242.0 ,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或它的一個依賴項。系統找不到指定的文件。「:」Microsoft.SqlServer.BatchParser,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91「 – 2010-01-27 15:43:54

+0

OK,odd - 你是否在你的硬盤上找到了一個「Microsoft.SqlServer.BatchParser.dll」文件? – 2010-01-27 15:56:25

相關問題