0

SQL Server 2008 R2 のテーブル [約 40] とストアド プロシージャ [約 120+] を開発サーバーから製品サーバーにエクスポートしようとしています。

ファイルを作成しました.sql[SSMSでデータベースを右クリックして選択しますTasks -> Generate Scripts]が、テーブルとストアドプロシージャをprodサーバーにインポートしようとすると[SSMSでデータベースを右クリックしNew Queryてコンテンツをコピーします]エラーの長いリストを教えてくれます

多くの場合

There is already an object named 'tblMyTable' in the database
Violation of PRIMARY KEY constraint 'PK_MyTable'. Cannot insert duplicate key in object 'dbo.tblMyTable'

私が間違っていること、または何をすべきか考えていますか? 前もって感謝します。

4

2 に答える 2

3

現在の手法の問題は、ターゲットが空のデータベースであると想定していることです。したがって、データをマージしようとせずにすべてを再挿入します。これにより、主キーが重複します。Management Studioを使用する場合は、データのすべてのマージを自分で行う必要があります。

私の推奨事項は、最初にレッドゲートを調べることです。これは無料ではありませんが、保存するたびに価値があります。SQLCompareとDataCompare(http://www.red-gate.com/products/sql-development/sql-data-compare/)の両方を使用する必要があります。

もう1つの方法は、Visual Studio 2010プレミアムがある場合はそれを使用することです(http://msdn.microsoft.com/en-us/library/aa833435.aspxおよびhttp://msdn.microsoft.com/en-us/library/ dd193261.aspx)。これにより、データ比較とスキーマ比較の両方のオプションが提供されます。レッドゲートほど良くはありませんが、ほとんどの場合機能することがわかりました。

無料の代替手段を探している場合は、このスタック投稿https://stackoverflow.com/questions/377388/are-there-any-free-alternatives-to-red-gates-tools-like-sql-compareを確認してください。

于 2012-05-11T01:15:11.713 に答える
0

データベース全体を本番環境にインポートする場合は、本番データベースに置き換えて復元することもできます。

120 個の SP と 20 個のテーブルがデータベース全体のように見えました。そのため、置換による復元を行う必要があります。

于 2012-05-11T01:23:58.383 に答える