• 締切済み

DB構造移行したいが、同じ構造にならない

SQL Serverについて教えていただきたく、よろしくお願いいたします。 既存のデータベースと同じ構造のデータベースを別のサーバに構築すべく以下の作業を行ないましたが同じにはなりませんでした。足りない点などご指摘いただければありがたく存じます。 【同じでないと判断した理由】 「移行元DB」と「移行先DB」からDB作成スクリプトを生成し、スクリプトを比較したが同一ではなかった(列制約の記述) 例えば、移行元DBでは次の2行とも存在しますが、移行先DBでは2行目の([列名])を含む行が生成されません。 GRANT SELECT ON [dbo].[テーブル名] TO [public] AS [dbo] GRANT SELECT ON [dbo].[テーブル名] ([列名]) TO [public] AS [dbo] 上記のGRANT以外については同一でした。 【行なった作業】 SQL Server Management Studioにて、「移行元DB」を右クリック→タスク→スクリプト生成→全てのオブジェクトの生成→詳細設定にてインデックス・トリガ・オブジェクトレベル権限の各スクリプトをTrueにし、サーバのバージョン互換のスクリプトを"SQL Server 2000"に→スクリプト生成。 生成したDBでも上記の手順にてスクリプトを生成し、両者を比較した。 【環境】 元DB:SQL Server 2000 移行先DB:SQL Server 2008R2 上記作業を行なったサーバ:SQL Server 2008R2 当方、SQL Serverは初心者です。変な言い回しなどありましたらどうぞご容赦ください。 ご回答いただければ幸いに存じます。どうぞよろしくお願いいたします。

みんなの回答

  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

ん?そもそも、移行先DBをどうやって作ったのですか? やり方としては、移行元で生成したスクリプトを移行先で実行すればよいのだと思いますが。比較するのではなくて。

noname#233585
質問者

補足

早速ご回答いただき、大変ありがとうございます。 移行先DBは、移行元で生成したスクリプトで作成しました。結果、テーブル構造、関数、ストアドプロシージャなどは同じなのですが、両者が本当に同一なのか?という疑念を持ち、同一=両者で生成したスクリプトも同じ、と考え比較したところ、先に質問させていただいた状態となりました。 このままで運用は可能だと思うのですが、何か問題が発生しないか?と考える次第です。列制約がどこまで影響を及ぼすのか???ということなのですが。 追加でご回答、あるいは質問いただければ幸いです。よろしくお願いいたします。

関連するQ&A