5

データを含むテーブルがいくつかあり、Schema1これらのテーブルをデータとともに、作成した新しいスキーマにコピーしたいと思いますSchema2

これを行うためのエレガントな方法はありますか?SQL ServerManagementStudioを使用しています。

4

3 に答える 3

9

SQL Management Studio で、ソース テーブルがあるデータベースを右クリックし、[タスク] -> [データのエクスポート] を選択します。

ソースと宛先のサーバーとスキーマを設定し、コピーするテーブルを選択して、エクスポートするテーブルを宛先スキーマに作成させることができます。

また、同じサーバーとデータベースにコピーするがスキーマが異なる場合は、次のことを確認してください。

  1. Source および Destination パラメーター には、Sql Server Native Client (
    https://i.stack.imgur.com/Qqhbd.pngを参照) を使用します。
  2. Source パラメータと Destination パラメータに同じデータベース名を選択します
  3. 1 つ以上のテーブルまたはビューからコピー データを選択します (オプション)ソース テーブルおよびビューの選択GUIで
  4. 宛先テーブルのスキーマをソース スキーマとは異なるものに変更します (つまり、「newschema.tablename」のようなものを入力します)。
于 2012-12-06T09:40:08.647 に答える
1

これが私がしたことです:

  1. ソース テーブルを右クリックし、[上位 1000 行を選択] を選択します。
  2. 選択から「トップ 1000」を削除します。
  3. from句の上に「INTO newschema.newtable」を追加
  4. そのクエリを実行します。
  5. 新しいテーブルにインデックスを作成します。

これは、SQL Studio の同じ接続から新しいスキーマを使用できるようにする必要があるため、すべての人に有効というわけではありません。

于 2016-09-17T19:01:19.590 に答える
1

スキーマに構造上の変更があると仮定すると、バックアップを実行して新しいデータベースに復元するだけでなく、データベースを右クリックしてタスクを選択することができます。スクリプトを生成します。2 番目のページには、データをスクリプト化するためのオプション (デフォルトではオフ) があります。

これにより、CREATE TABLE ステートメントと共に一連の SQL 挿入ステートメントが作成されます。また、[スクリプト トリガー] を選択し、それらの機能を使用する場合に必要なその他のオプションをいくつかオンにすることもできます。

スキーマ間で INSERT を実行したり、ここで説明されているように SSIS を使用したりすることもできます。

SQLServer データベースの 2 つのインスタンス間でデータ レコードをコピーする方法

注意すべきことの 1 つは、エクスポート データ機能はインデックス、制約、トリガーなどを伝達しないと考えていることです。そのため、適度な量のデータに対して最初の方法を使用するか、少なくとも新しいテーブルを最初の場所に続いて、他の方法のいずれかが続きます。

于 2012-12-06T09:38:39.427 に答える