2012-08-28 14 views
8

私は私の開発DBに私の本番DBからデータをエクスポートしようとしていますが、私はこのエラーを取得しています:SQL Server 2008 R2のデータエクスポートの問題

Messages Error 0xc0202049: Data Flow Task 1: Failure inserting into the read-only column "id". (SQL Server Import and Export Wizard)

はそのIためであるどの列をチェックする方法はありますそれらのすべてが列名idを使用するか、または少なくともより良いエラーレポートを取得する20の表がありますか?

+0

私は、あなたのdevデータベースのどのテーブルでも、データをインポートしようとしているどのテーブルよりも権限があると思います。 devデータベースで使用しているユーザーIDに制限はありますか? –

+0

いいえ私は管理者であり、私のユーザ名はどのタスクも完了するためのアクセス権を持っています – Geo

答えて

2

私がしなければならなかったすべてだった:

  • は、右クリックして、列(この場合は「ID」)に
  • [変更]を選択し
  • 列のプロパティインサイドあなたがアイデンティティの仕様が表示されるまでスクロールダウン
  • ビューを展開し、ドロップダウンメニューから[いいえ]を選択します。

誰もがこれを行うの異なる(速い)方法を知っている場合

5

列IDがID列の場合、行が挿入されると自動的に生成されるように設定されており、直接書き込むことはできません。

SET Identity_Insert <TableName> ON 

あなたがidentity値を書き込むことができるようにするには:テスト、使用に本番環境からリンク維持するために

+0

私のすべてのIDカラムは自動的にその値を生成します。私はあなたのコマンドを20回実行しなければならないと思いますか?(各テーブルに1回) – Geo

+0

IDがグローバルの場合は、値の生成を担当するテーブルに対してのみ実行する必要があります。他の表は、おそらくIDENTITY列として指定されていません。 –

+0

あなたの例では、あなたはです。私はテーブルの一つで試してみましたが、うまくいきませんでした。これはエラーです。 'テーブル'ユーザー 'にはIDプロパティがありません。 SET操作を実行できません。 – Geo

0

IDENTITYフィールドとして宣言されている列に値を挿入しようとしているように聞こえます。

0

を共有してくださいまあ、答えは少し遅れているが、私はコミュニティに提供するためにとにかくそれを投稿しています。

テーブル(部分データではない)をコピーしようとしているとします。私の答えはこの前提に基づいています。

  1. SSMSのオブジェクトエクスプローラを使用してソースデータベースに接続します。
  2. テーブルをコピーするdbを右クリックします。
  3. 'タスク' - > 'エクスポート'に移動します。
  4. 送信元と送信先のサーバーを選択し、手を放す前に追加のスクリプトを実行したくない場合は、「次の1つ以上のテーブルまたはビューからデータをコピーする」を押します。これで、コピー先のテーブルを選択できます。

宛先に完全にコピーする表を選択します。そして、 'Edit mappings'をクリックしてください。ここで、「アイデンティティの挿入を有効にする」ことができます。他にもオプションがありますので、OKを押す前に画面を確認してください。

SSMSのExpress版を使用していない場合は、SSISパッケージを作成してジョブを作成し、今後このプロセスを自動化することができます。 「すぐに実行する」をチェックして、すべての警告とエラーがどのように表示されるかについて画面に従います。うまくいけばあなたは誰も得られないでしょう。がんばろう!

Tested with: 
(
    Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
    Jun 17 2011 00:57:23 
    Copyright (c) Microsoft Corporation 
    Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) 
) 
24

インポートするテーブルを選択するときは、Edit mappingsをクリックするだけです。 Enable identity insertチェックボックスをオンにします。そして、あなたはそれぞれの選ばれたテーブルのためにそれを行うべきです。その後、インポートを完了することができます。それは同じ状況で助けられました。

関連する問題