問題タブ [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 - Insert Into/Select から ID を取得する
SQL Server 2012 で (クラシック ASP ページのバックエンドとして) スクリプトを作成して、最初のテーブル ( ) からすべての行を選択し、それらを他の 3 つのテーブル ( 、、および)aaa_test_ap
に分配しています。 aaa_test_users
aaa_test_users_positions
aaa_test_users_education
aaa_test_users.ID
行が挿入されたら、User_ID
同じクエリ内で、他の 2 つのテーブル挿入で FK ( ) として使用するために、 の ID を取得したいと考えています。
INSERT INTO
1 つのクエリ内 で、メソッドを使用して ID を取得することは可能ですか?
を使用してみましSCOPE_Identity()
たが、最後の値しか返されません。
このOUTPUT
メソッドでは、最初の挿入ステートメントによって生成された値が次の 2 つのステートメントに挿入され、それぞれ正しい挿入行に挿入されるように、生成されたテーブル値をどのように利用すればよいでしょうか?
まず、テーブル:
これは私が取り組んできたクエリです:
sql-server - ColdFusion コードがクエリで SCOPE_IDENTITY() を使用していないにもかかわらず、SQL Server Profiler が SCOPE_IDENTITY() を表示している
SQL Server 2008 R2 Profiler を使用して、ColdFusion 7 アプリケーション (他の誰かが開発したもの) の問題をデバッグしています。これは、SQL Server 2008 R2 をバックエンドとして Windows 7 で実行しています。このアプリケーションは、もともと MS Access 2003 をバックエンドとして使用していましたが、後に SQL Server 2008 R2 に変換されました。プロファイラーは、SCOPE_IDENTITY() を使用している次の SQL を表示していますが、検索ユーティリティを使用してアプリケーションのルート ディレクトリを検索すると、SQL クエリのどこにも SCOPE_IDENTITY() 関数が使用されているファイルがありません。アプリの SQL Server データベースには、ストアド プロシージャ、ビュー、関数などはありません。すべての SQL クエリは、ColdFusion ファイル内に埋め込まれたクエリです。次に、プロファイラーが SCOPE_IDENTITY() 関数を取得する場所:
更新 もともとアプリは CF 7 で開発されましたが、CF 7 は後で CF9 にアップグレードされ、現在は CF 11 を搭載したローカル マシンでデバッグしています。CF 7 が置き換えられたときにコードもアップグレードされたかどうかはわかりません。 CF 8、そしてCF 9で。プロファイラーで上記のSQLを生成すると思われるCFqueryは次のようになります。さらに、テーブル ProductItems には ID 列があり、データベースはトリガーを使用しておらず、CFquery タグは結果属性を使用していません。
sql - 複数の scope_identities をデイジー チェーン接続しますか?
4 つのテーブルがあり、あるテーブルから次のテーブルに新しく挿入された pk を使用したいとします (これはすべて 1 つのバッチとして実行されます)。
これは可能ですか?
ありがとう
tsql - ID 値を別のテーブルに挿入する方法
私は2つのテーブルを持っています:
それでは、Clients ('Ralph', 00000000) に挿入してみましょう。id_client は (明らかに) 1 になります。問題は、その 1 を Sales に挿入するにはどうすればよいかということです。
sql - 出力で SCOPE_IDENTITY() を使用する場合の一貫性
テーブルに追加された行の現在の ID ID を返す SQL クエリを実行したいと考えています。
今私の質問は、現在挿入されている行の返された ID ですか、それとも最後に挿入された行の ID ですか?
つまり、外部キーとして使用するために信頼できますか?
c# - SQL と C# を使用して、表 1 の PK を表 2 の FK として使用 - select_identity() で中断、オブジェクトを DBNull から他の型にキャストできない
C# と SQL の初心者はこちら。table1
の主キーを外部キーとして使用する 2 つのテーブルがありtable2
ます。ID を取得するために、私は使用してSELECT MAX
おり、すべてが必要に応じて機能します (以下のコード):
SCOPE_IDENTITY()
しかし、同僚は代わりにを使うべきだと言っていますSELECT MAX
。なぜそれを使用する必要があるのか (複数のユーザーの場合など)は理解していますが、SELECT MAX
それを置き換えた後、エラーが発生します:
オブジェクトを DBNull から他の型にキャストすることはできません。
私のデータベースでは、PK と FK のデータ型は int で、Null は許可されておらず、SELECT MAX
そのままで機能します。それで、私はここで何が間違っていますか?
sql - Scope_Identity() は常に 0 を返します
次のストアド プロシージャは、新しい行を正しく挿入しますが、出力パラメーターに対して常に 0 を返します。新しい行 ID を返すものは何ですか?
sql-server - トリガー内の挿入の ID を取得する
SQL Server 2008 に TableA と TableB があります。
TableA には、INSERT と UPDATE の後に起動するトリガーがあります。トリガーで、TableB に挿入するので、TableB から挿入された ID を取得するにはどうすればよいですか? FROM INSERTED は TableA のレコードの情報を持っていますか?
同じセッションで tableA に 100 または 1000 の挿入を送信するとします。@@identity または scope_identity() (私は最後に行きます) を使用して b 挿入の ID を取得できますか? そして、トリガーが発射されるたびにトリガーのすべての機能を完了する時間を考慮して、この2つの機能のいずれかを使用することがどれほど便利で安全か