問題タブ [scope-identity]

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.

0 投票する
1 に答える
94 参照

asp.net-mvc-4 - 新しく作成された PK を取得し、選択したインデックスのページを返す方法

MVC 4 アプリケーション、VS 2010、Entity Framework 5、Sql 2008 R2、c# があります。

私のコントローラーでは、新しいエントリ (実際にはドロップダウンリストに追加するフォーム) を追加した後、作成したばかりの ID を取得してドロップダウンリストに戻し、ページに新しく作成されたエントリ (およびすべてのエントリ) が表示されるようにします。その詳細)。

私はSCOPE IDENTITYについて読み続けていますが、こちら側から(可能であれば)それを実装して使用する方法がわかりません。どんな提案でも大歓迎です。

0 投票する
2 に答える
556 参照

java - EclipseLink レコードの挿入で間違った ID が返される

MSSQL(2008) および EclipseLink(2.4)

別のテーブルに挿入するトリガーを使用してテーブルに挿入しています

これが発生すると、EclipseLink は、トリガーによって他のテーブルに挿入されたレコードの ID を返します。

EcliipseLink で @@IDENTITY の代わりに SCOPE_IDENTITY() を使用することで、正しい ID を取得できると思います。

問題は、これを行う方法ですか?

EclipseLink (JPA) のソリューションが必要です。SQL を使用して ID を取得する方法を知っています。

0 投票する
2 に答える
1982 参照

c# - ExecuteSQLCommand SCOPE_IDENTITY() は常に 1 を返します (.NET C#)

動的テーブル (.NET C#) にデータを挿入するために動的 SQL を使用しています。ID 列の値を返す必要があり、scope_identity を使用しようとしましたが、結果は常に 1 と表示されます。

これは私のコードです

私がここに欠けているものはありますか?

ありがとう

フェリックス

0 投票する
7 に答える
15867 参照

c# - SQL Serverを使用してC#を挿入した後にIDを返す

この質問がこのサイトに何度もあることは知っていますが、コードを機能させることができません。

ステートメントがInsertあり、asp.net ページでそのステートメントの ID が必要です。

を取得していreturn value 0ます。

0 投票する
1 に答える
4522 参照

sql-server - INSTEAD OFトリガーを使用してテーブルに挿入された新しいレコードのIDを取得する方法

テーブルで INSTEAD OF 挿入トリガーを使用して、行に増分バージョン番号を設定し、行を 2 番目の履歴/監査テーブルにコピーしています。
行は問題なく両方のテーブルに挿入されます。
ただし、最初のテーブルから新しい ID をユーザーに返すのに問題があります。

スキーマ

挿入トリガーでの列の結合nameは理想的ではありませんが、複数の挿入を一度に処理する必要があります。
例えばINSERT INTO Table1 (name) VALUES('xxx'),('yyy')

試みられた解決策

インサートするときSCOPE_IDENTITYは ですNULL

私も OUTPUT を使用してみました-これは次を返します0

行は正常に挿入され、ID がありますが、以下を使用しない限りアクセスできません。

新しいIDを取得する正しい方法は何ですか??


解決

不可能!INSTEAD OF トリガーを持つテーブルで INSERT を実行する場合、ID を確実に返すことはできません。以下の Sidux の回答は、私の状況に対する適切な回避策です (INSTEAD OF トリガーを AFTER トリガーに置き換え、DEFAULT 列を追加します)。

0 投票する
3 に答える
69 参照

c# - 連続したデータベース挿入を実行できません

2 つの異なるテーブルに対して 2 つの SQL 挿入を連続して実行しようとしています。

最初の表の挿入は正常に機能します。SELECT SCOPE_IDENTITY()変数に格納するインデックス番号を取得するために使用しますRegistree_Index。これは正常に動作します。

次に、Registree_Index他のいくつかの変数を 2 番目のテーブルに挿入しようとします。これは、2 番目のテーブルにはまったく書き込まれません。エラーメッセージもありません。

最初は、エラーは古いクエリと接続文字列変数の再利用に関係していると思ったので、新しい変数を作成しました。これは役に立ちませんでした。

誰もこれについて考えていますか?コードは続きます...

0 投票する
1 に答える
415 参照

sql - scope_identity() を使用する場合; 複数のユーザーが同時にアプリケーションを使用している場合、間違った行の値を返す可能性はありますか?

私はプログラミングの世界では初心者なので、私の無知を許してください。

挿入したばかりの行の主キー値を取得したい。主キーの値は自動的に生成されます。その主キーの値を外部キーとして別のテーブルに挿入したいと考えています。

これは、最初のテーブルにデータを挿入するコードです

どこDoQueryですか

上記のコードでは、主キーである id が自動的に生成されます。surveyidその値を取得して、2番目のテーブルに挿入したいと思います。

そして、2番目のテーブルのIDを取得して、3番目のテーブルに値を挿入します。

最近挿入された行の id 値を取得するには、次を使用できます

これは Web アプリケーションであり、複数のユーザーが同時にアプリケーションを使用しているためSCOPE_IDENTITY()、間違った行の値を返す可能性があります。もしそうなら、どうすればそれを避けることができますか?

プログラミングについての私の無知を許してください。

あなたの助けに感謝。

ありがとうバシャビ