11

SQL Server Management Studio (SSMS) で「ツール ==> オプション ==> デザイナー ==> テーブルおよびデータベース デザイナー ==> 変更スクリプトの自動生成」を有効にします。データベース スキーマを変更するときは、スクリプトを保存します。アプリケーションを実行しているすべてのマシンにインストールされている DB 移行ツールのおかげで、次のソフトウェア バージョンの更新時にスキーマを同期できます。

最近、開発用コピーと一部の運用サーバーを SQL Server 2008 に切り替えました。ただし、数十台の SQL Server 2005 でソフトウェアを実際に実行しています。しばらくの間、これらをアップグレードする予定はありません。

問題は簡単です。SSMS によって生成されたスクリプトは、SQL Server 2005 で常に機能するとは限りません。SMSS は、コマンドに追加のメタデータを追加しています (たとえば、ロックのエスカレーションに関して)。2005 でスクリプトを作成するには、余分な情報を手動で削除する必要があります。そうしないと、スクリプトが実行されません。

SQL Server 2005 と互換性のあるスクリプトを生成するように SSMS を構成する方法はありますか? 余分な SQL を自動的に取り除くか、少なくともどのファイルに問題があるかを知らせるツールはありますか?

4

3 に答える 3

13

SQL Server management studio 2008 で、[ツール] -> [オプション] -> [SQL Server オブジェクト エクスプローラー] -> [スクリプト] に移動し、[サーバー バージョンのスクリプト] を選択して、SQL Server 2005 に変更します。

于 2009-01-11T00:59:57.843 に答える
2

オプションを変更するための推奨される解決策は正しいように見えますが、それでもデータベースにALTER TABLE SET(LOCK_ESCALATION = TABLE)が生成されます(互換モード90にさえ入れました)

于 2009-02-02T22:21:43.663 に答える
0

私はまだ 2008 Management Studio を使用していませんが、以前のすべてのバージョンで、オプションのどこかでスクリプトを特定のバージョンの SQL Server に設定することができました。

同様の理由で、2005 の管理スタジオを 2000 互換のスクリプトを生成するように設定しています。

于 2009-01-11T00:43:00.750 に答える