• ベストアンサー

サーバー移行前後のストアドのチェック

SQL Server 2000を2008に移行をしようとしています。 そのため、2000で使用していたストアドやユーザ定義関数が、 2008では使用出来ない可能性があります。 このチェックをしたいのですが、 ストアドやユーザ定義関数が大量にあり、 お手上げ状態です。 何かよい方法をお教えいただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

楽にやる方法は基本的にないと思います。 ・中で使っているオブジェクトの中身が変わったとしても、ストアドのコンパイルは通ってしまうから、コンパイルが通ったからと言って大丈夫とは到底いえないでしょう。 ・例えば、「ISNUMERICの動きが変わりました」「TOP 100 PERCENTをサポートしなくなりました」と言われても、影響があるかどうかは結局データを入れて動かしてみないと分からないです。 ただ、「使用できない」=「サポートされなくなった機能がある」という意味では、ストアドで使われる範囲では殆どないはずです。 (「今後サポートされなくなります」と言われているIMAGE型やTEXT型、sysobjectsなどのシステムビューなどについては、2008でもまだ使えます) ANSI標準でない構文(*=など)を使っていたり、テーブルのロックヒントにWITHを付けていなかったりするとエラーになります。 詳細は以下を確認してください。 http://technet.microsoft.com/ja-jp/library/ms143532(SQL.90).aspx http://technet.microsoft.com/ja-jp/library/ms143532.aspx 2005から今までのsyscommentsだけでなく、sys.sql_modulesというビューも使えるようになっています。 (syscommentsは8000バイトのぶつ切りでしたが、sys.sql_modulesは1オブジェクト1行でソースが入ってます) なので、 SELECT OBJECT_NAME(OBJECT_ID) FROM sys.sql_moduels WHERE definition like '%オブジェクト名やキーワード%' で広めにピックアップして、対象を重点的にチェックするというのはどうでしょうか。 繰り返しになるようですが、最後はデータを入れて稼働確認しないといけないことには変わりありません。

GreenVVV
質問者

お礼

ご丁寧に回答してくださってありがとうございます。 対象を重点的にチェックしてデータを入れるというやり方でやってみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQL Server6.0→2000の移行方法

    現行のSQL Server6.0から、別マシン上のSQL Server2000に DBを移行したいと考えてます。 いろいろ調べたところ、アップグレードウィザードを使用して 6.0→6.5→2000と2段階で移行するように書いてありましたが、 他に方法ありましたら教えてください。 また、上記のバージョンに限らず、移行を行う場合は 通常どういった方法をとるものなのでしょうか。 アップグレードウィザードだとテーブル定義や ストアドプロシジャなども移行に含まれますが、 データ以外は事前に移行したほうがよいのでは、、 と考えてます。 SQL Server初心者のため、ぜひともご教授お願いします。

  • ASPからSQL Server2000のストアドプロシージャーを利用したいのですが。。

    ASPからSQL Server2000のストアドプロシージャーを 利用したいのですが、記述の方法どのようにすれば いいのでしょうか? ストアドプロシージャーの結果をレコードセットと して、ASPの中で使用したいのですが。。。

  • サーバ移行に伴うデータベース移行

    下記の様に旧サーバから新サーバへDB環境を移行しようと思っています。 旧サーバ:OS…WindowsNT、  DB…SQLserve7.0 新サーバ:OS…Windows2003、 DB…SQLserve2000(SP3) DTSを使用し、既存データベースを新サーバへインポートしていて、テーブルは正常に移行できたのですがストアドプロシージャ(SP)やビュー等が新旧サーバで同じようになりません。(ユーザ作成分しか移行できず) イメージではDTSを使用すればデータベースのテーブルからSPから全て同一の項目数になると思っていたのですが… SPなどはどうやって移せばよいでしょうか? どなたか教えて下さい。 宜しくお願い致します。

  • SQL ServerのストアドでOUTPUTパラメータを2つ

    VB.NETとSQL Serverでストアドプロシージャーを使用しています。 OUTPUTパラメータを2つ使用したいのですが、VB.NET側での受け取り方法がよくわかりません。 ご存知の方がいらっしゃいましたら、よろしくお願いします。

  • SQL サーバーのストアドをAccessのクエリーに変換

    SQL Server 7.0 のストアドプロシージャーをAccess2000のクエリーに 簡単に変換する方法を教えてください。

  • ストアドプロシージャで外部プログラムを起動するには?

    こんにちは。 SQL Serverから外部プログラムを呼び出すストアドプロシージャを作りたいと思っていますがなかなか上手くいきません。 データベースの内容が変わったときに(INSERT,DELETE等で)特定の外部プログラムを実行するストアドプロシージャを作りたいと思っています。 (SQL Serverに関してまったくの素人なので言葉に誤りがあるかもしれません) 外部プログラムを呼び出す機能として、拡張ストアドプロシージャでxp_cmdshellというものがあるらしいのですが、sysadminユーザしか使うことが出来ず、セキュリティ上にも問題があるとのことなので、xp_cmdshellを使わずに外部プログラムを呼び出す方法を探しています。 具体的な方法、ソース等ありましたら、教えてもらえないでしょうか? また、そんなこと出来ないと言ったことでも教えてもらえると助かります。 現在の環境 Windows XP Professional SQL Server 2005 Developer Edition 宜しくお願いいたします。

  • ストアドの中身をテキストデータにおとす

    SQL Server2000を使用しています Enterprise Managerでストアドの中身を画面やSQLスクリプト生成で見ていますが一つずつ見なければならないので不便です DB内に登録されたストアドを一括してtxtデータに落とし込む方法はないでしょうか? Enterprise Managerの機能でなくてもACCESSやEXCELで実現できればそれでいいです

  • SQL-ServerでAgentサービスの稼動状況を確認する方法

    SQL-Serverについての質問です。 SQL-Server2005を利用しているのですが、 ストアドプロシージャから、そのサーバのSQL Server Agentサービスの稼動状況をチェックする方法はありますでしょうか? sp_start_job等のアクションを伴うシステムストアドプロシージャを実行すれば、 Agentが起動していないというエラーは発生するのですが、 単純にAgentの稼動状態をチェックだけする方法がわかりません。 些細なことでも構いませんので、ヒントやきっかけとなる事がありましたら、ぜひご教示下さい。宜しくお願いいたします。

  • SQL Serverの移行について

    SQL Server2000からSQL Server2008へ 移行したいです。 Accessからリンクテーブルをして使用しています。 移行後、Accessのプログラムを実行しようとすると、 エラーが発生します。ODBC接続を使用しています。 リンクテーブルマネージャで再リンクしてみたのですが、 うまくいきませんでした。 何かうまくいくためのヒント等わかるかたいらっしゃいますでしょうか?

  • PostgreSQL(8.4.2)のユーザ定義関数(ストアドプロシージ

    PostgreSQL(8.4.2)のユーザ定義関数(ストアドプロシージャ)を、 ODBC経由でVisualStudio2005から利用したいのですが、 サーバーエクスプローラーからユーザ定義関数を参照することが出来なくて悩んでいます。 ユーザ定義関数はpgAdminIIIで作成しました。 cse(Common SQL Environment)などのフリーのツールからは問題なく参照できます。 VisualStudioにユーザ定義関数として認識させるための何かおまじない的な物が必要なのでしょうか。 それともPostgreSQLとVisualStudioとの相性が悪いのでしょうか。 なおユーザ定義関数以外であるテーブルやビューは、 サーバーエクスプローラーから参照できます。