データセットを使用して、古いデータベースから変換されるデータを挿入しています。要件は、現在のOrder_ID番号を維持することです。データセット用のIDENTITY_INSERTを無効にする
私が使用して試した:
SET IDENTITY_INSERT orders ON;
これは私がのSQLServer Management Studioでいる時、私は成功し
INSERT INTO orders (order_Id, ...) VALUES (1, ...);
しかし、それは私がそれを行うことはできませんすることができています動作します私の変換スクリプトで使用しているデータセット挿入を介して。これは基本的に次のように見えます。
dsOrders.Insert(oldorderId, ...);
私はこの処理中にSQL(SET IDENTITY_INSERTオーダー)を実行しました。私は一度に一つのテーブルに対してしかこれを行うことができないと私は知っています。ときIDENTITY_INSERTをテーブルにID列に明示的な値を挿入することはできません「受注」:受注テーブルに値を挿入 System.Data.SqlClient.SqlExceptionしようとして
例外:
私はこの例外を得続けますOFFに設定されています。
私はのSQLProfilerでSQLを見たときに
更新
AlexS & AlexKuznetsovは、セットIDENTITY_INSERTしかし、接続レベルの設定であることを言及している、私はいくつかのコマンドを気づきます。
- まず -
SET IDENTITY_INSERT DEAL ON
- セカンド - nまでの
exec sp_reset_connection
- サード - 選択&挿入の
など、私の様々なSQLコマンドのコマンドの間exec sp_reset_connection
しかし、私はこのことを信じているが常にありますIdentity_Insert設定の値の喪失に責任があります。
データセットの接続リセットを停止する方法はありますか?
は笑、私はあなたが私はオプションが混ざっていたことが正しかったが、私はそれらを変更したときに、それは私の問題が解決しなかった – Jupaol