SQL Server 2008のインポートおよびエクスポートウィザードを使用しています。データベースをインポートする必要があります。 SQLサーバーのインポート/エクスポートウィザードを開き、次のアクションを実行しました。
宛先には、「SQL server native client 10」を選択しました。
次に、1つ以上のテーブルまたはビューからデータをコピーすることを選択しました。
SSISをすぐに実行
しかし、私は次のエラーを受け取りました、
操作が停止しました...
データフロータスクの初期化(成功)
接続の初期化(成功)
SQLコマンドの設定(成功)
ソース接続の設定(成功)
宛先接続の設定(成功)
検証中(エラー)
メッセージエラー0xc0202049:データフロータスク1:読み取り専用列「ActionID」への挿入に失敗しました。 (SQL Serverインポートおよびエクスポートウィザード)
エラー0xc0202045:データフロータスク1:列のメタデータの検証に失敗しました。 (SQL Serverインポートおよびエクスポートウィザード)
エラー0xc004706b:データフロータスク1: "コンポーネント" Destination-AuditActions "(22)"は検証に失敗し、検証ステータス "VS_ISBROKEN"を返しました。 (SQL Serverインポートおよびエクスポートウィザード)
ID列とタイムスタンプ列をインポートできないようですが、これらの値を強制的にインポートするにはどうすればよいですか?
日付をインポートする前に、以下のクエリを実行してID挿入を設定します。
SET IDENTITY_INSERT TableName ON
次に、インポート操作を実行します。
日付をインポートした後、以下のクエリを実行してID挿入をオフに設定します。
SET IDENTITY_INSERT TableName OFF
Kishoreの答えを十分に尊重して、パッケージを変更する場合、このアプローチは有効です。インポート/エクスポートウィザードを使用しているため、より簡単な方法は、[列マッピング]タブのEnable Identity Insert
ボックスをチェックすることです。
インポートエクスポートウィザードで、コピーするテーブルを選択した後、Edit Mappings...
ボタンをクリックします
結果の画面で、Enable identity insert
プロパティをクリックすると、IDが複製されます。
SET IDENTITY_INSERT TableName ON
&OFFを発行した場合と同じ最終結果ですが、これはビルド時に自動的に行われます。