まったく同じスキーマを持つ 2 つのデータベースがあります。一方からデータをエクスポートし、もう一方に複製したいと考えています。テーブルを削除して再作成したくありません。ターゲット データベースのすべてのデータを消去し、ソース データベースからエクスポートされたデータに置き換えます。
これは可能だと思いますか?ターゲット データベースは、権限が非常に制限されたクライアント環境にあります。
まったく同じスキーマを持つ 2 つのデータベースがあります。一方からデータをエクスポートし、もう一方に複製したいと考えています。テーブルを削除して再作成したくありません。ターゲット データベースのすべてのデータを消去し、ソース データベースからエクスポートされたデータに置き換えます。
これは可能だと思いますか?ターゲット データベースは、権限が非常に制限されたクライアント環境にあります。
SQL Server インポートおよびエクスポート ウィザードを使用して、データをインポートできます。SQL Server インポートおよびエクスポート ウィザードは、データベースとの間でデータをコピーできます。
SQLではわかりません。ただし、phpなどの3番目のアプリケーションを使用してデータ転送を実行できます。拳はテーブルからすべてのデータを収集します。テーブル内のデータごとに、ターゲットテーブルでルックアップを実行します。ターゲットテーブルに現在のソースデータと同じデータが含まれている場合は、更新してください。それ以外の場合は、新しいものを作成します。たぶん、PHPでは次のようなものです。
$source = mysql_query("SELECT * FROM source_table");
while ($row = mysql_fetch_assoc($source)) {
$target = mysql_query("SELECT * FROM target_table WHERE id='" . $row["id"] . "'");
$tr_row = mysql_num_rows($target);
if ($tr_row > 0) {
$result = mysql_query("UPDATE target_table SET name='" . $row["name"] . "' age='" . $row["age"] ."' WHERE id='" . $row["id"] . "'");
} else if ($tr_row <= 0) {
$result = mysql_query("INSERT INTO target_table (name,age) VALUES ('" . $row["name"] . "','" . $row["age"] . "'");
}
}
これは、PHPとMySQLのサンプルコードです。この助けを願っています。:)
2 つのデータベース サーバーをリンクできる場合は、SSMS から INSERT と SELECT ステートメントを使用してこれを行うことができます。
リンク サーバーについて詳しく説明している記事を次に示します。
SSIS パッケージを使用することもできますし、それを行う製品もあります。私はそのための特定の製品 (Red Gate による SQL Data Compare) といくつかのバージョンのソース管理の両方を使用しました (後者については、実際には「静的な」ルックアップ データのみ)。
これらのオプションでさえ、通常、INSERTS などからスクリプトを作成するだけです。
具体的には「複製」という言葉を使用します。データベース間で実際のスナップショット レプリケーションを行うことを検討しましたか。
http://technet.microsoft.com/en-us/library/ms151734%28v=sql.105%29.aspx
ただし、それもあなたの質問によると完璧ではありません。
オプションはありますが、悲しいことに、ただ実行するほど単純なものはありませんRESTORE DATABASE