2009-04-14 11 views
0

同じ構造を持ち、別のサーバーにレプリケートするようにセットアップされているSQL Server 2000データベースがいくつかあります(アップグレードが必要です)。問題は、構造を変更する必要があるとき(通常、すべてのデータベース、特にRed Gateのツールで簡単に行うことができます)、私はレプリケーションを停止し、構造の変更を行い、再度レプリケーションを設定する必要があります。レプリケーションをセットアップする手順は、データベースごとに行うのに数分かかるだけですが、繰り返しますし、私を狂ってしまいます。 IDEでレプリケーションプロシージャのスクリプトを作成し、次に前のデータベースの名前を次のデータベースの名前に置き換えてスクリプトを実行します。それでもIDEをクリックしてオプションを忘れるよりも、面倒ですが速いです。複数のデータベースで同じレプリケーションスクリプトを実行

"SP_MSFOREEACHDB"のようなものを試しましたが、それはあまり有望ではありませんでした。

私は、IDEから生成されたTSQLを使用して、それをパラメータとしてデータベースの名前を渡した新しいTSQLスクリプトを作成するための出発点として使用するべきだと考えています。そして、データベースの構造によって何かが変わったら、私はTSQLレプリケーションスクリプトでそれを解決し、そこに変更を加える必要があります。これは他の誰にとっても問題なのでしょうか? 2005年か2008年はより良い "SP_MSFOREACHDB"を持っていますので、いくつかのクレイジースクリプトを維持しなくても、複数のデータベースで簡単に使用できる変更がある場合にIDEでスクリプトを生成させるだけですか?

+0

すべてのサーバーでスクリプトを実行する際にSQL Query Bridgeを使用します。私たちから無料で入手できます@ http://www.ispysql.com – IEnumerator

答えて

1

SQL Serverレプリケーションを使用していますか?もしそうなら、パブリッシングデータベースを変更して、スキーマの変更をそのサブスクライバにプッシュするのはなぜですか?私たちはSQL 2005でこれを行うことがあり、ほとんどの場合うまく機能します。 2000年のサーバーでのレプリケーションに関する経験はありません。

+0

ええ、これは2005年の恩恵です。 。 。スキーマの変更を行うことができ、データのようにレプリケートされます。そのような理由ですぐにアップグレードしようとしています! – tooshel

0

SQL Server Management Studioを使用できる場合、SSMS tools packには、同じスクリプトを異なるデータベースで実行できるようにするウィジェットがあります。

0

SQLCMDツールは、SQL Server 2000に接続し、コマンドラインからの対話を有効にすることができます。パラメータ化されたクエリと.batファイルの固定セット(各サーバーに1つ)を使用することは、現在行っていることの良い代替手段となります。

関連する問題