問題タブ [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.
sql-server - IDENT_CURRENTは最後のID値を返しますが、SCOPE_IDENTITYは返しません
asp.netアプリケーションのバックエンドとしてSQLServerがあります。複数の人が同じテーブルに「同時に...」データを挿入する可能性があります。
この投稿から解決策/回答を読んだとき:scope_identity vs ident_current
Ident_current
次に、別のユーザーの挿入のIDを取得できるため、使用しないでください。
ただし、を使用Select Scope_Identity();
するとNULLがSelect IDENT_CURRENT('tableName')
返され、SQL ServerManagementStudioで確認した正しいIDが返されます。
内で行う挿入ステートメントSqlTransaction
。Select IDENT_CURRENT('tableName')
トランザクションの後に行われます。
何が間違っていますか?
更新:
基本クラスによって動的に一緒に構築される私の挿入ステートメント:
コマンドのパラメータコレクションの値は「xxx」で、すべてがテーブルに正常に挿入されています。
SqlDataReader
C#だけでストアドプロシージャを使用することはありません。
上記のステートメントを実行している最後のautoincidを取得するにはどうすればよいですか?また、上記を呼び出すExecuteNonQuery
必要ExecuteReader
がありINSERT
ますSELECT
。
c# - バッチ処理された sqlclient コマンドの Scope_identity()
私は通常、正しい scope_identity() 値を取得するために、レコードを挿入するときにストアド プロシージャを使用します。現在 SqlClient を使用している場合、挿入されたレコードの id フィールドを取得する必要があります。
私の理解では、scope_identity() コマンドを挿入でバッチ処理すると、挿入コマンドと同じスコープに残りますか? 以下のようなもの。確認するのは難しいですが...これで100%正しいID値を取得できますか..?
(id フィールドは自動インクリメント bigint - Sql Server)
sql-server-2008 - ms sql scope_identity
ストアド プロシージャに最後に挿入されたタプルの ID を引数として別のストアド プロシージャに渡したい。
4 つのコード スニペットを次に示します。最初の 2 つのスニペットは正しく機能します。
と
ただし、これらのスニペットは両方とも、クエリがエラーで完了します。
と
カッコが大騒ぎする理由がわかりません!どのようscope_identity()
に異なる構文を持つことができますか?
sql-server-2008 - SCOPE_IDENTITY() は常に NULL + SSIS を返します
これは、SCOPE_IDENTITY() を取得して SSIS パッケージ変数に割り当てるスクリプトです。
これは、過去数か月間はすべて正常に機能していましたが、次のエラーで常に失敗しています。
メッセージ
ユーザーとして実行: XXXXXXX\xxxxxxx。Microsoft (R) SQL Server Execute Package Utility Version 10.0.2531.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. 全著作権所有。開始: 3:53:54 PM エラー: 2012-04-30 15:54:07.15 コード: 0xC002F210 ソース: AUDIT_SK の生成 SQL 実行タスクの説明: クエリの実行 "--START: SCRIPT TO CHECK IF THERE IS ENTRY FOR 'U ...」は次のエラーで失敗しました:「結果をタイプ (DBTYPE_I2) の変数に抽出中にエラーが発生しました」。考えられる失敗の理由: クエリの問題、「ResultSet」プロパティが正しく設定されていない、パラメーターが正しく設定されていない、または接続が正しく確立されていない。終了エラー DTExec: パッケージの実行で DTSER_FAILURE (1) が返されました。開始: 午後 3:53:54 終了: 午後 3:54:07 経過: 13.151 秒。パッケージの実行に失敗しました。ステップは失敗しました。
パッケージを別の環境にコピーするか、SSMS でスクリプトを単独で実行すると、すべて正常に動作します。
誰かが私をどこから調べ始めるべきか教えてもらえますか?
ありがとう
sql-server - scope_identityをストアドプロシージャに渡します
scope_identity
子から親のストアドプロシージャにを渡すことについては、多くの議論があります。行が親ストアドプロシージャに挿入され、ID値を子ストアドプロシージャに渡したいという反対のシナリオがあります。
ただし、scope_identityを子プロシージャに直接渡すと、SQL ServerManagementStudioで解析エラーが発生します。
ただし、ローカル変数を使用すると問題は解決します。
scope_identity()
入力パラメータとして直接渡されない理由は何ですか?
asp.net - Visual Studio 2005 で scope_identity を使用するには?
最後に挿入された ID を取得したい場合にステートメントをどこに置くSELECT SCOPE_IDENTITY()
か、他の挿入クエリ内に配置しましたが、何も得られません..
ありがとう。
sql-server - SQLServer2012のscope_identityアドバイス
SQL Server 2012でストアドプロシージャを作成し、scope_identity
ID列の値を取得するために使用しましたが、私の場合、これが正しいかどうかわかりません。
私の質問は、変数@identityEnglish
がの最後のID値を取得し、english_table
変数がの最後のID値を@identityKurdish
取得することですkurdish_table
ありがとうございました..
sql - EXEC() ステートメントで実行される INSERT から SCOPE_IDENTITY() を取得する方法
ストアド プロシージャ内に動的挿入ステートメントを作成しています。
変数で sql 構文を構築し、それを で実行しEXEC(@VarcharVariable)
ます。
SQL挿入は正常に機能しますが、SET @Record_ID = Scope_Identity()
後で実行すると値が得られません。
どうすればこれをキャプチャできますか?にラップする必要がありEXEC
ますか?
sql-server - SQLServerOUTPUT句
以下のステートメントで、挿入された行の「新しいID」を取得できないように見える理由に少し固執しています。SCOPE_IDENTITY()
nullを返すだけです。
どんな援助でも大歓迎です。
今のところ、私はこのような回避策を使用しています。
undefined - SCOPE_IDENTITY() を使用する正しい方法?
私は2つの別々のフォームを持っています。最初のフォーム ハンドラーは、2 番目のフォームが必要かどうかを判断します。各フォームは、個別のデータベース テーブルに入力します。後で対応する行をリンクできるようにする必要があります。SCOPE_IDENTITY()
最初のフォームの後に呼び出し、2 番目のフォームで ID として使用される変数に設定することで、そうしようとしています。
それが理にかなっていることを願っています。これが私のコードです:
これは私にこれを与える:
致命的なエラー: 138 行目の /public_html/test/index.php の未定義関数 scope_identity() の呼び出し
これを行う正しい方法は何ですか?結果を変数として設定する必要があることに注意してください。