2009-07-06 13 views
1

私は開発スキーマにSQLストアドプロシージャを作成しました。今私たちは開発コードを本番のものに移行させています。これらのストアドプロシージャをあるスキーマから別のスキーマにコピーするにはどうすればよいですか?ターゲットとなるスキーマでプロシージャ全体を再コンパイルする必要がありますか?または、対象のスキーマにこれらのプロシージャを登録する方法はありますか?私はストアドプロシージャをコピーするより良い方法を提案することができますか?私はリンクをお読みくださいWindowsのバージョン5リリースのためのiSeriesナビゲーターによって予め4.DataSources/Schema間でSQLストアドプロシージャをコピーしますか?

おかげで、 スレシュ

答えて

4

ストアドプロシージャを作成するSQLは、ソース管理システム(CVS、SVNなど)のプロジェクトの一部としてソースファイルに存在する必要があります。

プロジェクトを新しいサーバー(Dev、QA、Production)に "展開"するには、単に新しいサーバー/データベース上で "ソースSQL"ファイルを実行する必要があります。

実際には、データベースへの変更(テーブルの列の変更、新しいテーブルの追加)は、ソース管理のSQLファイルに入れて同様に適用する必要があります。

データベース開発ツールでは必ずしもそうであるとは限りませんが、SQLもソースコードです。 :-)

+0

はい、そうです。しかし、外部データベース開発ツールを使用せずにiSeriesコマンドを使用してスキームを登録するには、これらの手順を登録/実行する方法はありますか?つまり、すべてのSQLファイルを物理的に実行する必要はありません。資格のあるストアドプロシージャとしてprodスキーマに転送するだけです。 –

+0

私はテーブル、インデックスなどを作成するためにSQLをソースタイプがSQLである通常のソースファイルに作成します。次に、現在のライブラリーを本番データ・ライブラリーなどに変更し、RUNSQLSTMコマンドを使用してSQLを実行します。 あなたは簡単にPDMに追加することができます...私はオプションとしてRSを使用し、 "RUNSQLSTM SRCFILE(&L /&F)SRCMBR(&N)COMMIT(* NONE)"をコマンドとして使用します。あなたが望むならば、それを一度にすべてのものに対して実行することができます。 –

+0

はい、完璧な世界ではそうすべきです。しかし、あなたが骨抜きのプロジェクトマネージャーを持っていて、そこにこれらのものを作成し、ソースを残していないのであれば、それらを新しいdbにコピーするかなり自動化された方法を持つのは良いことです。 – btk

0

私が見つけた最良の方法は、SQL Management Studioを使用していて、スクリプトプロシージャ...メニューオプションを使用していました。これにより、あなたのsprocsのSQLソースが生成されます(使用するメニューオプションに応じてCREATE/ALTER)

すべてのsprocs/user defined関数を一括コピーする必要がある場合は、Tasks-> Generate Scriptsメニューオプションを使用します。結果として得られる一連のダイアログで、スクリプトを生成するsprocs /関数を選択し、それらのスクリプトを新しいdbで実行することができます。

1

一般に、元のソースは必要ありません。 iSeriesナビゲーターを開き、データベースをドリルダウンして開発SPを保持するスキーマに移動します。必要なものをすべて選択し、右クリックして[Generate SQL]を選択します。 'RunSQL Scripts'で開くように選択します(オプションでDROP文を含めることもできます)。

これにより、選択したすべてのSPのスクリプトが1か所で表示されます。これはあなたが選ぶ場所に保存できます。また、スクリプトでスキーマ名を変更する必要がある場合は、「編集」 - >「置換」を使用することもできます。

次に、新しいスキーマを指すために、メニューオプション[接続 - >一時的なJDBC設定を使用...]を選択できます。最後に、ツールバーの[すべて実行]アイコンをクリックして、スクリプトから新しいスキーマにSPを生成します。

つまり、iNav 'Run SQL Scripts'にしたいものを選択し、新しいスキーマをポイントして基本的に1回の操作で作成します。

関連する問題