問題タブ [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.
sql-server - 挿入エントリのストアド プロシージャでの SQL スクリプト エラー
テーブルにエントリを一括追加するストアド プロシージャに取り組んでいます。
これが私がこれまでに得たものです:
「テーブル '@toInsert' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT がオンの場合にのみ指定できます。」というメッセージが表示されます。
「declare」ステートメントの後に「set identity_insert @toInsert on」という行を追加しようとしましたが、「構文が正しくありません」というエラーが発生します。他のいくつかの場所に移動しようとしましたが、同じ結果になりました。
さて、私はいくつかの調査を行いましたが、実際には「identity_insert」をオンに設定したくないようです。これは、テーブルに ID を自動的に生成させるのではなく、ID を指定する必要があるためです。私は欲しいです。
おそらく、私がする必要があるのは、挿入呼び出しでテーブル内の個別の列をそれぞれ指定し、id 値を除外することだけであり、すべてがうまく一致するはずです。しかし、私が間違っていない限り、手順はすでにそのように設定されており、まだ気に入っていません。
私が見逃している可能性があるものはありますか?
sql-server-2008 - SQL Server ID 挿入エラー
「アイデンティティインクリメント= 1、アイデンティティシード= 1」でアイデンティティインセットを設定しました。しかし、試してみると、最初の ID は 1、2 番目の ID は 4、3 番目は 8、4 番目は 14 です。
sql - IDENTITY_INSERT を使用するか、1 つのステートメントで指定するかを選択する方法
ID 列を持つテーブルに要素を再挿入する必要があるストアド プロシージャに取り組んでいます。これを行うと、ID 列を指定する必要がある行もあれば、ID 列によって生成される新しい ID 値が望ましい行もあります。の代わりに単一のステートメントでこれを行うことは可能IF-ELSE
ですか?
ここに私が今持っている解決策があります(id_column
ID列はどこにありますか):
ご覧のとおり、両方のステートメントは非常に似ています。ほぼ同じ挿入を繰り返さなくて済むのは興味深いことです。
編集:
このテーブルには、現在の連絡先データが保持されます。アーカイブ/削除された連絡先を別のテーブルに移動して、このテーブルをクリーンで不要なデータのない状態に保ちますが、現在のデータ テーブルに復元することがあります。可能であれば、連絡先がアーカイブ/削除される前に持っていた ID を保持したいと思います。不可能な場合 (ID が既に再割り当てされている場合)、新しい ID を生成する必要があります。
sql - 列名が指定されていても SET IDENTITY_INSERT が機能しない (coldfusion)
エラーの取得に関する多くの投稿があります。
「IDENTITY_INSERT が ON に設定されている場合、またはレプリケーション ユーザーが NOT FOR REPLICATION ID 列に挿入している場合は、テーブルの ID 列に明示的な値を指定する必要があります」
問題は常に、ユーザーが次のようなことをしようとしていることです。
私の場合、列名を指定していますが、それでもエラーが発生します。
編集: ID 列をキャプチャしようとしている理由は、一時テーブルが最終的に他のデータを に挿入するときのテスト バージョンであるためRC_Incoming
です。私のアルゴリズムは次のとおりです。
TempTable
のクローンとして作成RC_Incoming
- 他のテーブルからデータを挿入します
TempTable
(RecordID
自動生成させます) - すべてが正しく見えることを確認してください
- OK の場合は、realz に対して実行します -- に挿入し
RC_Incoming
ます。
コード:
私はまだ得ています:
データベース クエリの実行中にエラーが発生しました。[Macromedia][SQLServer JDBC ドライバー][SQLServer]IDENTITY_INSERT が ON に設定されている場合、またはレプリケーション ユーザーが NOT FOR REPLICATION ID 列に挿入している場合、テーブル '#TempTable___________________________________________________________________________________________00000000066E' の ID 列に明示的な値を指定する必要があります。
RC_Incoming
既にデータがあり、まったく同じ構造を持っています (SQL Server Management Studio で行われます):
sql - SET IDENTITY_INSERT に相当する H2
H2 を使用して、本番環境で MS SQL Server を使用して実行されるシステムを JUnit テストしています。
最新バージョンの一部として、いくつかの DDL 変更を行い、データを古い構造から新しい構造に移行する必要があります。そして、ID 列を持つ新しいテーブルにデータをコピーする必要があります。
実際には、1 つのテーブルを 2 つに分割しています。今後、新しいテーブルには独立した (ID) 主キーがありますが、初期化のために、元のテーブルと同じ主キーの値が必要です (つまり、移行時には 1 対 1 であり、その後は 1 になります)。対多)。
結果の構造が同等である限り、システムに H2 および SQL Server 固有のコード (DDL は既にシステム固有です) を使用してもかまいません。したがって、H2 オプションまたはこれを実現する JDBC トリックがあれば、大丈夫です。
Spring JdbcTemplate を使用してすべてが実行されています。
提案をありがとう。
sql - SQL 自動インクリメント範囲または除外数値
SQL の自動インクリメント列から範囲を追加するか、数値を除外しようとしています。
各ジョブは一意であるため、ジョブ番号に関する自動増分列があります。問題は、私たち自身もクライアントとして扱い、ジョブ番号を 99999 として扱うことです。他のジョブ番号は、たとえば 10500 で終了します。自動インクリメントが行われると、99999 から続きます。これを除外する方法があります。 IDENTITY_INSERT を手動で ON に設定し、自分で ID を挿入する必要がありますか?
前もって感謝します
r - Azure SQL db で RODBC::sqlSave を使用して追加できない
そのため、RODBC の問題を伴う StackOverflow には多くの問題がありますが、AZURE SQL データベースに追加しようとするこの特定の変種は見たことがありません。KEY を識別できるようにするパラメーターが必要であり、そこにロードしないようにする必要があると本当に思います...プルリクエストを準備しますが、RODBC は github に dev ブランチを持っていませんか? とにかく、私の問題と私がやろうとしたこと、そして私の厄介な回避策を投稿します。
ActDF.new
プロパティは次のとおりです。
と呼ばれる新しいテーブルを使用して、この情報をデータベースに追加したいと思いますActuals
。そこで、これを実現するために RODBC::sqlSave を使用してみました。以下に一撃一撃を見つけます:
データベースに接続する
データベースの行数を取得します(キーの開始位置を知るため)
では、ID を DF に追加しましょう。また、Value にはたくさんの NA があります...そしてそれらは必要ないので、より良い DF に変換しましょう
空白の値が多いので、NAに変換してみましょう(これは面倒な方法です...私は知っています)
### よし、準備完了!だから追加してみてください!###
うーん...まあまあ...
あ…でも…待って、何?テーブルは確かに存在し、私は RW の権利を持っています。だから多分IDENTITY_INSERTはどういうわけか違う...とにかくステータスは何ですか?
は。addPK
意味がわかりません...別の設定でもう一度試してみましょう
それはまったく迷惑ではありません。OK FINE、まとめてIDを削除しましょう
まあ、本当に?行方不明の列があります???????? 大丈夫
設定fast=F
すると次のエラーが返されます。length of 'dimnames' [2] not equal to array extent
わかった。ggsqlSave
あなたが勝ち、私が負けます。ここで変更が必要だと思います...構築中のSQLクエリを確認すると、次のことがわかります。
列に追加しようとしないようにクエリを指定するだけのパラメータが必要だと思いますID
...そうですか?
何か不足していますか?
sql-server - 実行時に DatabaseGeneratedOption.Identity のオン/オフを切り替える方法
EF6 Code First で作成した DB があります。一部のテーブルには ID 列があります。OLD Id 値を持つこれらのテーブルにいくつかのレコードを挿入する必要があります。このリンクHow to switch between DatabaseGeneratedOption.Identity...に表示されているソリューションを試しましたが、ID列ではなく、計算オプションとなしオプションを切り替える方法を示しています。これを実行しようとすると、次のエラー メッセージが表示されました。これを解決する方法はありますか?
entity-framework - IDENTITY_INSERT が OFF の場合、明示的な値をテーブルに挿入することはできません
テーブルに値を挿入しようとするとエラーが発生します。
_dltype
タイプのオブジェクトですBRIDownloadType
。
今、私はエラーが発生します:
IDENTITY_INSERT が OFF の場合、BRIDownloadTypes-Table の ID 列に明示的な値を挿入することはできません。
私の2つのテーブルは
BRIDownloadType
ブリトド
_dltype
興味深いのは、自分のオブジェクトで何かを行うと、それを使用できるということです。次のコードは機能していますが、まったく同じオブジェクトを挿入している理由がわかりません。
なぜ最後のアプローチが機能し、最初のアプローチがそのエラーをスローしているのか、誰かが私に説明できますか? 行を追加しただけです
しかし、私はまだ同じオブジェクトを挿入しています。Id
オブジェクトの代わりにオブジェクトのを挿入すると、正常に動作します。そこで何が起こっているのかわかりません。