問題タブ [output-clause]
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 - SQLServerOUTPUT句
以下のステートメントで、挿入された行の「新しいID」を取得できないように見える理由に少し固執しています。SCOPE_IDENTITY()
nullを返すだけです。
どんな援助でも大歓迎です。
今のところ、私はこのような回避策を使用しています。
sql-server - SQL Server: 複数の出力句
私は2つのテーブルを持っていTable_1
ますTable_2
.
Table_1
列PK
(自動インクリメントint
) とValue
( nchar(10)
) があります。
Table_2
FK
( int
)、Key
( nchar(10)
)、Value
( )がありnchar(10)
ます。
つまり、Table_1
はデータのテーブルであり、 の 1 行が の0 個、1 個、または複数のキーと値に対応するTable_2
キー値ストアです。Table_1
Table_2
からの主キーを使用して、に 1 行を挿入しTable_1
、 に可変数の行を挿入するクエリをプログラムで構築するコードを書きたいと思います。Table_2
Table_1
1行で簡単にできます:
しかし、SQL は複数の行を持つという考えを好まないようです。これは失敗します:
これを機能させる方法はありますか?
tsql - レコードの挿入されていないデータの保存
テーブル値パラメーター (TVP) と、C# コードからそれらを使用する方法を試しています。TVP の 1 つの特定の側面は、私に問題を引き起こしています: データのリストをストアド プロシージャに渡し、データがデータベースから戻ってきた後にそのリストを更新したい場合。
リスト内に含まれるサンプル クラスを次に示します。
このリストを TVP を使用するストアド プロシージャに渡す場合、_phoneID と _phoneNumber をデータベースに挿入し、挿入後、_correlationID に基づく _phoneID で電話のリストを更新するにはどうすればよいでしょうか?
サンプル テーブル、型、およびストアド プロシージャを次に示します。
相関 ID を使用する理由は、オブジェクトをアプリケーションからデータベースまで、またその逆方向に追跡できるようにするためです。
tsql - 挿入の成功または失敗を判断しながら、SQL挿入ステートメントから新しいuniqueidentifierを取得する最良の方法は?
uniqueidentifiers を使い始めたところ、予期しない問題が発生しました。
まず第一に、通常は SCOPE_IDENTITY() を使用しますが、uniqueidentifier ではこれができなくなりましたが、概念上はデフォルト (newid() または newsequentialid()) の結果として自動生成された id 値が含まれます。 ) 制約。
INSERT ステートメントで OUTPUT 句を使用して、UUID をテーブル変数に出力することにしました。考えてみると、OUTPUT 句は SCOPE_IDENTITY を時代遅れにしています。これは、同じことやそれ以上のことを達成するためのより明確で強力な方法であるためです (たとえば、挿入されたすべての行に対して複数の自動生成された列に明確かつ直接アクセスできます)。
ただし、OUTPUT を使用すると、通常は挿入に続く @@rowcount のテストにどのように影響するのか疑問に思っています。@@rowcount は、メイン ステートメントに挿入された行数または出力句によってテーブル変数に挿入された行数を反映しますか?
違いはないと思うかもしれませんが (つまり、どちらの方法でもカウントは同じでなければなりません)、違いはあります。なぜなら、挿入ステートメントが失敗した場合でも、OUTPUT 句は値を返し、テーブルにデータを入力するとドキュメントに記載されているからです。 .
OUTPUT 句を持つ UPDATE、INSERT、または DELETE ステートメントは、ステートメントでエラーが発生してロールバックされた場合でも、クライアントに行を返します。ステートメントの実行時にエラーが発生した場合は、結果を使用しないでください。
特に@@rowcountは、OUTPUTを使用する場合にのみ最も外側のステートメントを常に反映することに言及していますが、これはネストされたクエリのコンテキストであると言及しています。私の場合の OUTPUT 句は最も外側のステートメントの一部であるため、insert ステートメントが失敗した場合に @@rowcount が出力テーブルに挿入された行数を報告するかどうかは不明です。
sql - SQL Server で OUTPUT を使用してテーブルに複数の列を挿入するにはどうすればよいですか?
OUTPUT 部分までスクロールします。赤い下線が引かれています。InvoiceNum と一緒にInsertedCreditDebitAdjustmentIDs
挿入された ID をテーブルに挿入したいと思います。@CreditDebitAdjustment
どうすればこれを行うことができますか?
sql-server - OUTPUT 句を使用して、SELECT INSERT ステートメントから元の ID と新しい ID のマッピングを取得する
私は2つの列を持つテーブルを持っています:
SELECT INSERT ステートメントを使用してデータを複製したい:
ここにトリッキーな部分があります-元のIDと新しいIDの間のマッピングテーブルを取得したい:
OUTPUT 句を使用すると思いますが、何らかの理由で機能しません。
関連する質問:
select を使用した SQL 挿入は複数の ID を返すことができますか?
テーブル パラメーターを使用して挿入し、ID 値を取得することは可能ですか?
php - OUTPUT 句は PHP で戻り値を取得します
いくつかの調査を行った後、Output 句が必要だと思います。基本的に、サーバーにアップロードしているファイルの場所を受け取ったときに、以下の SQL を取得して指定されたテーブルに挿入しています。テーブルにアップロードすると、ID は自動インクリメント フィールドであり、主キーです。
これを実行すると が返されますがINSERT INTO ebwf (src,loc,iq,wq,pq) OUTPUT Inserted.src, Inserted.loc, Inserted.iq, Inserted.wq, Inserted.pq VALUES ('m','scan/WF_153_140812113520.pdf','y',0,0);
、number 行は返されません。
挿入された行の今すぐ ID が本当に必要ですが、これらのフィールドをすべて取得できれば素晴らしいことです。
いくつかの異なる場所から OUTPUT 句の使用法をほとんどコピーしましたが、返されないために何が間違っているのかわかりません...
これを書いている間、私はいくつかの調査をしようとしています.人々は私がそれを欠いていると思っているので、私は良い回答率を持っていませんでした. ...クエリを次のように変更しました。
悲しいことに、まだ何も得られません。次に何をすべきかについて、これで十分な情報が得られることを願っています。
sql-server - SQL Server でテーブルのヘッダーと詳細のペアを移行する
ヘッダーと詳細のテーブルのペア (IDENTITY ID を持つ) から別の DB の新しいテーブルのペアにレコードを移行するにはどうすればよいでしょうか?
たとえば、ヘッダー テーブルから 4、6、9、10 番のレコードとそのすべての詳細を移行する必要があります。
新しいテーブルにヘッダー レコードを挿入すると、それらの ID は 1、2、3、および 4 になります。詳細を挿入する場合、4 の子レコードは 1、6 から 2 などを指す必要があります。
「古い」IDと「新しい」IDをペアにする方法として、テーブルに挿入されていないフィールドを含めるためにOUTPUT句を使用する方法はありますか?
sql - DELETE ... OUTPUT COUNT(DELETED.*)
特定の DELETE 操作で削除された行数を知りたいです。
マイクロソフトの例 Bを取り上げました。
count
削除されたレコードのみを返すように変更しようとしました:
しかし、これはスローします
だから私は試しました
投げる
私は何を取りこぼしたか?
mysql - ストアド プロシージャでの OUTPUT の mySQL ワークベンチ構文エラー
order_id
挿入しようとする注文に設定された自動インクリメント ID を格納するという変数を宣言しました。で構文エラーが発生しOUTPUT
ます。
私は多くの例を読みましたが、これが正しいコーディング方法です。すべてのコードはストアド プロシージャ内にあります。別のテーブルに挿入するために自動インクリメントされた ID が必要であることを除いて、注文の挿入と残りの手順は機能します。
MySQLワークベンチは言う
構文エラー: 予期しない '出力' (識別子)
何が悪いのかわかりません。
編集:テーブル変数を使用して解決された同様の問題を伴うstackoverflowに関する別の質問を見つけましたが、テーブル変数を宣言できないようです。ワードベンチ 言う
TABLE は現時点では有効な入力ではありません。
これは、「DECLARE MyTableVar TABLE (IdentityColumn BIGINT);」を試したときです。