web-dev-qa-db-ja.com

SQL Server Express内でデータベースをコピーしますか?

所有しているデータベースのコピーを作成したいが、テストデータベースと同じサーバーに保存したい。ただし、私が見つけたのは、データベースコピーウィザードを使用することです(MS SQL Server Expressを使用しています)。

指示は常に言う:SQL Server Management Studioのオブジェクトエクスプローラーで、[データベース]を展開し、データベースを右クリックして、[タスク]をポイントし、[データベースのコピー]をクリックします。

[データベースのコピー]オプションがありません。私は管理者として実行しているので、なぜそれが見つからないのか分かりません-それは別にインストールする必要がありますか?同じサーバーにコピーしているため、デタッチ/アタッチを実行できません。私はデタッチ、MDF/LDFのコピー、名前の変更、アタッチを試みましたが、ごちゃごちゃになっていることを想像できると思います:)私はSQLをすべてプログラムで行うのは得意ではありません。使用できるツールはありますか?

48
Jenn

SSMS 2008では、これを行うことができます。

  1. コピーするデータベースのバックアップを作成します

  2. SSMSで、「データベース」を右クリックし、「データベースの復元」を選択します

  3. [復元元]セクションの[データベースから]ドロップダウンリストからコピーするデータベースを選択します。

  4. [復元先]セクションの[データベースへ]フィールドに新しいデータベースの名前を入力します-これは既存のデータベースの名前にすることはできません。

  5. OKをクリック

できました! :)

77
Steve Wilkes

SQL Server Express 2012では、次の手順を実行できます。

  1. コピーするデータベースのバックアップを作成します
  2. 「データベース」を右クリックして、「ファイルとファイルグループの復元」を選択します
  3. [データベースへ]フィールドに新しいデータベースの名前を入力します。
  4. 「デバイスから」を選択し、最初のステップでバックアップしたファイルを選択します
  5. 「OK」をクリックします

これにより、「デフォルト値」や「自動増加」などの正しいテーブル設定でデータベースが「クローン」されます。

47
rekinyz

SQL Expressデータベースにはエクスポートボタンがあります。データベースをコピーしているのは、同じサーバー上の新しいデータベースにデータベースをエクスポートしただけです。データベース名を右クリックします。

8
DmitriySidyakin

以下の手順を実行して、SQL Expressでデータベースのコピーを作成します

  1. SQLを停止
  2. データベースのmdf、ldfおよびその他のファイルを新しい場所にコピーします(ログファイルを取得することを確認してください)
  3. コピーした各ファイルの名前を変更します
  4. SQLを開始
  5. SSMQで[データベース]を右クリックし、[添付]を選択します
  6. 「名前を付けて」列の名前を必ず変更してください。
  7. [データベースの詳細]の下部ペインのファイルの場所を、コピーしたファイル(特にそのログファイル)の場所に更新します

この方法でSQL Expressシステムにデータベースをコピーできました

alt text

3
RC_Cleland

SQL Express 2012を使用してデータベースのコピーを作成する際に問題が発生しました。バックアップと復元の方法で解決しました。私が使用したバックアップを作成した後:restore-> files and file groups choosing restore option

次のステップは、新しいデータベースの新しい名前を記述し、ソースを設定することでした。

set source and named new database

ソースファイルを指す

choosing backup file

最後に、既存のデータベースを置換で上書きすることを選択し、既存の場所とは異なる拡張子mdfおよびldfを持つ新しいファイルの名前を設定する必要があります。Restoreas

set new names for mdf and ldf files

この方法は私のために働いた

2
Kiril Dobrev

SQL Server Express 2012を使用してオプションのファイルに移動する場合は、宛先ファイル(Restore As列)が元のファイル* .mdfおよび* .logと異なることを確認してください。

(私は画像を入れようとしましたが、10評判が必要です:p)

2
valdessir

解決策は、バックアップを作成して復元することです。ただし、復元されるコピーが異なる.mdfファイルと.ldfファイルを指していることを確認してください。

SSMS 2014とSQL Server 12のインストールを使用して確認する方法は次のとおりです。ローカルディスクでバックアップを作成および復元していると仮定します。

  • 既存のデータベースのバックアップを作成します
    • データベースを右クリックし、「タスク」の下の「バックアップ...」を選択します。
    • (その場所をデフォルトのままにしておくと、復元するときに次のステップでバックアップを探す必要がなくなります。)
  • バックアップを新しいデータベースに復元します:
    • データベースを右クリックして、「データベースの復元」を選択します
    • 「デバイス」を選択します
    • 省略記号ボタン(「...」)をクリックして、「バックアップデバイスの選択」ダイアログを開きます。
    • バックアップメディアタイプとして「ファイル」を選択し、「追加」ボタンをクリックします
    • 作成したバックアップを選択し、[OK]を2回クリックします
    • 次に、「データベースの復元」ダイアログに戻り、宛先データベースの新しい名前を入力します
    • [ページの選択]の下の[ファイル]をクリックし、[名前を付けて復元]がまだ存在しない.mdfおよび.ldfファイル名を指していることを確認します。
    • [OK]をクリックします!
1
Rose

私はこれを回避するための本当に気の利いた方法を考えました:)だから、私は自分のアイデアを投稿すべきだと思った。これは「テストされていない」ことに注意してください。ただし、動作すると思います。

  1. 「バックアップ...」データベースを実行します(理論的にはこれは運用サーバー上にありますが、そうである必要はありません)
  2. バックアップファイルを(prodサーバーから)開発マシンにコピーします
  3. 開発マシンでSSMS Developer Editionを使用している場合、開発マシンで「復元」を実行し、その後開発マシンでも「データベースのコピー」を実行できます(DBの新しいコピーを作成するため)
  4. 作成したばかりの新しいデータベースで「バックアップ...」を実行し、バックアップファイルを(運用サーバーに)コピーし、SQLサーバーエクスプレスサーバーで「復元」を実行します:)

これが少数の人々を助けることを願っています:)

乾杯、

ジェフ

1
Jeff Moretti

問題が見つかりました! [データベース]をクリックして、復元し、次の操作を実行します。復元する場所を選択し、宛先データベース名を書き込んだ後、ファイルに移動します[画像の注釈1]そして、非常に正しい列のファイル名をオリジナルとは異なる名前に変更します[画像の注釈2]、それは動作します:)

> SEE THE PICTURE HERE <

1
DiSaSteR

Expressバージョンのマネージャーにデータベースのコピー機能があるとは思わない。バックアップおよび復元方法によるコピーを検討しましたか?

http://msdn.Microsoft.com/en-us/library/ms190436.aspx

1
johnny

新しいデータベースにデータをインポートしてみてください。

  1. ローカルSQLサーバーに空のデータベースを作成します
  2. 新しいデータベースを右クリック->タスク->データのインポート
  3. SQL Serverのインポートおよびエクスポートウィザードで、データソースとして製品envのサーバー名を選択します。そして、宛先データベースとして新しいデータベースを選択します。
0
maoyang

データベースのバックアップを作成して、新しいデータベースに復元してみてください。

  • 新しいデータベースを作成します。
  • オリジナルの完全バックアップを作成します。
  • 新しいDBを右クリックして、復元をクリックします。
  • .BAKに移動し、.mdfと.ldfが新しいものと一致することを確認します。
0
p.campbell