このような単純な問題のために、この投稿が非常に長くなって申し訳ありません。私はこれにほぼ 3 日間取り組んできましたが、完全に夢中になっているので、誰かがこの悪夢から抜け出せるように、できる限り詳細をここに書き込もうとしています!
私は基本的に、共有ホストから 2 つの SQL Server 2008 R2 データベース バックアップ ファイルを持っています:database-1.bak
とdatabase-2.bak
. これらのデータベースはそれぞれ、同じ共有サーバー上の異なる共有ホスティング アカウントに設定され、それぞれに 1 人のデータベース ユーザー (「database-1」と「database-2」という名前が付けられています) が設定されています。データベースの構造は同じですが、データは異なります。Database-1
コンテンツがありますが、database-2
空です。からすべてのデータをコピーして、共有ホストに再アップロードdatabase-1
したいと考えています。2 つのデータベースはまったく同じである必要がありますが、スキーマとスキーマによって所有されている必要があります。database-2
database-2
database-1
database-1
database-2
database-2
として SQL Server Management Studio Express 2008 R2 にログインし、これらのデータベースを復元したので、sa
そこに 2 つのデータベースができました。もう 1 つは、eg などと呼ばれるテーブルのロードです。そのため、すべてのテーブルはスキーマによって「所有」され(テーブル名の前に が付加されます)、すべてのテーブルはスキーマによって「所有」されます (テーブルは名前の前に) が追加されます。database-1.tblTest
database-1.tblTest2
database-2.tblTest
database-2.tblTest2
database-1
database-1
database-1.
database-2
database-2
database-2.
右クリックdatabase-1
して選択Tasks > Export Data
し、にエクスポートしようとしましたdatabase-2
。これに関する奇妙な点は、エクスポートのためにオブジェクトを自動的にマップするときに、次のようになることです。
database-1.tblTest (on 'source' database-1) -> database-1.tblTest (on 'destination' database-2).
代わりにこれを行うことを望んでいるので、それは奇妙です:
database-1.tblTest (on 'source' database-1) -> database-2.tblTest (on 'destination' database-2).
database-2 のテーブルがそのdatabase-2.
所有者を保持することを願っています。次のように各テーブルをマッピングすると:
database-1.tblTest -> database-2.tblTest
エクスポートは失敗します。マッピングをデフォルト(database-1.tblTest -> database-1.tblTest
)のままにしておくと成功しますが、スキーマdatabase-2
が所有するテーブルが大量にロードされます。database-1
これが今私がいるところです。Database-1
復元したときと同じです。しかし、database-2
今では が先頭に追加されたテーブルのセットと、が先頭に追加されdatabase-2.
た同じテーブルのセットがありdatabase-1.
ます。
これは問題ですdatabase-2
。ホスト サーバーに再度アップロードしようとすると、スキーマがdatabase-1
同じサーバー上にある別のアカウントを使用しようとしているためにエラーが発生するためです。database-2
したがって、スキーマの所有者を維持するためにテーブルが必要ですが、database-2
からのデータで満たされるだけdatabase-1
です。
database-2
インポートしたテーブルのスキーマをからdatabase-1
に変更するために、次のようなクエリを実行してみましたdatabase-2
。
USE [database-2]
ALTER SCHEMA [database-2] TRANSFER [database-1.tblTest]
ただし、これは単なるエラーです。
メッセージ 15151、レベル 16、状態 1、行 2
存在しないか権限がないため、オブジェクト 'database-1.tableTest' が見つかりません。
全体を通して管理スタジオにログインしているsa
ため、権限は問題になりません。
database-2
このデータを取得してスキーマの所有者を同じに保つ方法について、誰かが光を当てることができますか?
どんな助けでも大歓迎です、ありがとう!