問題タブ [identity-insert]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - IDENTITY_INSERTがOFFに設定されている場合、EFはテーブル 'X'のID列に明示的な値を挿入できません
あるデータベースから別のデータベースにデータを移行する必要があります。キーは保存する必要があります。自動生成された.dbmx
ファイルで EF を使用しています。同様の問題に対する多くの回答を読み、それらの提案に従いますIDENTITY_INSERT
。エントリを挿入する直前にオンにします。データベース図で、列StoreGeneratedPattern
をNone
オンに変更しましたId
(対応する属性をプロパティに追加して同じことを試みましたId
)。
これが私のコードです:
Management Studio でそれを行うと、問題なく動作します。この問題は、Entity Framework を使用している場合にのみ発生します。
INSERT_IDENTITY
コマンドが実行され、挿入SQLがId
列に付属しているSQL Server Profilerで見ることができるのは奇妙に見えますが、実行されていないようです。この SQL クエリをコピーして貼り付けると、問題なく動作します。
sql-server - T-SQL スクリプトを送信する方法
私は SQL Server を初めて使用し、データベースに対していくつかの SQL ステートメントを試していました。
次のステートメントで ID 挿入を有効にします。
それはうまくいきます。その後、エントリを挿入しましたが、スクリプトを閉じると変更が失われます。
私も試しました
すべてのテーブルに対して ID 挿入を有効にしましたが、それも機能しませんでした。
私の期待は、そのスクリプトを1回実行するとDBが常に変更されることでしたが、ID列を含むいくつかのエントリを挿入しようとすると、エントリが挿入されません。
sql-server - 単一のステートメントで ID の挿入を切り替える
フィールドで本当に怠惰な人のために:オンからオフに、またはその逆に切り替える単一のステートメントはありますか?IDENTITY INSERT sometable
sql-server - txt から一括挿入します。主キーとタイムスタンプ値を含むファイル
主キー (自動インクリメント値) としてという名前のテーブルがAddress
あり、タイプの列もあります。AddressID
tmsp
TimeStamp
テーブルからレコードを削除するストアド プロシージャを作成しましたが、削除する前にレコードを.txt
ファイルに保存しました。レコードをテキスト ファイルに保存する過程で、タイムスタンプを値に変換しVarbinary
ます。tmsp
その列がVarbinary
テキストファイルに保存されることを意味します。
次に、削除されたレコードをデータベースに挿入する新しいストアド プロシージャを作成します。コードは次のとおりです。
次のエラーが表示されます。
メッセージ 273、レベル 16、状態 1、プロシージャ CleanUp_Address、行 43 [バッチ開始行 2]
タイムスタンプ列に明示的な値を挿入できません。列リストで INSERT を使用してタイムスタンプ列を除外するか、タイムスタンプ列に DEFAULT を挿入します。
を削除するIDENTITY_INSERT
と、データが新しい値としてテーブルに挿入されるため、AddressID
上書きされますが、それは私が望むものではありません。を保持する必要がありAddressID
ます。
何か案は?