2012-05-02 12 views
2

は、我々は2つのSQL Server 2000件のデータベースを持っているとしましょう:SQL Server 2000からSQL Server 2008へ:2000年のデータベースを2008年のスキーマに復元することは可能ですか?

  PARTS 
      CUSTOMERS 

彼らは1つの結合データベースにSQL Server 2008に復元されたが、スキーマを使用して分離するので、PARTSスキーマや顧客スキーマが存在することになることはできますか? 2000年のデータベースを「2008年のスキーマ」に復元できますか?

答えて

2

Q:2000年のデータベースを2008年のスキーマに復元することはできますか?

A:はい。 .bakバックアップファイルをお持ちの場合は、単に「復元する」ことができます。

はここで同様の復元、およびそれらがどのように解決されたをやって問題を抱えていた誰かのリンクです:

あなたは絶対に「置き換えると復元」を行うことができます。

以前のMSSQL 2000バックアップを一時データベースに復元したら(「一時データベース」など)、「選択」するか、データを別のデータベースにコピーおよび/またはマージすることができます異なるスキーマ)。

"バックアップ"ファイルに関する限り、MSSQL 2008環境ではMSSQL 2000バックアップを使用することに比較的問題はありません - 互換性はかなり良いです。

IMHO .. PSM

+0

いいえ、私はこれが正しいとは思わない。彼は、テーブルと他のオブジェクトが別のデータベースのスキーマに復元されるPARTSという名前のデータベースを復元する必要があります。 –

+1

これは彼が求めていることではありません。彼は2つの別々のデータベースが1つの結合されたデータベースに復元できるかどうか尋ねています。 –

2

1つのデータベースに2つのデータベースを復元することはできません。各データベースを個別にリストアし、手動で結合する必要があります。または、各データベースのT-SQLスクリプトを作成し、2つのスクリプトを適切に組み合わせて、スクリプトを実行することもできます。

+1

しかし、MSSQL 2000バックアップから古いデータを取得することはできます。 MSSQL 2008環境にデータを取得したら、データをマージするための多くのテクニックがあります。バックアップ自体は問題ではありません。 「マージング」*はデータがどこに由来していても問題ではありません。 – paulsm4

+0

私はSQL Server 2000でプログラミングを行っていますが、Oracleでは数年間働いていました(ORAは私の唯一のスキーマ経験です)。Oracleでは、スキーマはセキュリティで保護されたオブジェクト(データベースオブジェクト)を所有しているため、上記の例に従ってPARTSSCHEMA.FOOおよびCUSTOMERSSCHEMA.FOOオブジェクトを同じデータベースに格納することは可能です。だから、復元中にターゲット・スキーマがセカンダリの所有権を要求するようにSQL 2Kデータベースを復元するだけで、オブジェクトを手動でマージする必要がなくなりました。 – Tim

2

私は、あなたが2008年のインスタンスをスキーマを利用して復元されたデータベースを操作することなく、あなたがしていることを達成することはできないと思います。

ソースデータベースをバックアップすると(ケース2の場合)、コピー先と同じようにリストアされます。つまり、コピー元とコピー先の間に矛盾がありません。したがって、定義上、バックアップされたデータベースとは構造的に異なる復元結果を持たせるべきではありません。

これを達成する方法は、最初にバックアップ/リストアプロセスを処理してから、復元されたデータベースを取得し、それらを実際の構造に結合するスクリプトを作成することです。

これは役に立ちましたと思います。

+0

正しい: "私はあなたが2008年のインスタンスをスキーマを活用して復元されたデータベースを操作せずに、あなたがしていることを達成できるとは思いません。" *データベースを復元することは問題ありません。 * *(OPが望むやり方)を組み合わせることは少ししかかかりません。そして、問題はMSSQL 2000とMSSQL 2008との関係は何もありません。IMHO ... – paulsm4

+1

が合意しましたが、私はもっと考えていますが、スクリプトを組み合わせて簡単にするとオブジェクトをコピーすることを避けることができません高価な)を分離されたスキーマにリストアします。論理的にどのように意味があるのか​​分かりますが、ここでの最良のアプローチは、クエリにDBNAME..TABLENAMEを使用し、他の方法で他のスキーマの利点を置き換えることです。 – itayw

+0

私は完全に同意します:) – paulsm4

関連する問題