問題タブ [sql-update]

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 投票する
3 に答える
26329 参照

sql - SELECT ステートメントの結果を更新する

Oracle では、SELECT ステートメントの結果を更新できます。

これは、別のテーブルの一致する行の値に基づいて、あるテーブルの列を更新するために使用できると思います。

この機能はどのように呼び出されますか、大規模な更新に効率的に使用できますか、SELECT が複数のテーブルを結合するときに機能しますか? もしそうなら、どのように機能しますか?

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

subsonic - 更新クエリの SqlExpression での SQL Server 関数の使用

SubSonic バージョン 2.2 では、次の (MSSQL 固有の) コードが失敗します。

この時点でupdate.ToString()、完全に正当な SQL 文が生成されます。

update.Execute()ただし、次の場合は失敗します。

式でSQLサーバー関数を使用する可能性はありますか?

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

sql - Hibernate に単純な更新を実行させる。膨大な選択と更新の代わりに

最初に質問を設定しましょう。

私が持っているのは、Customer、Address、Order、OrderItems の 4 つ以上のテーブルです。それぞれが Hibernate Annotations を使用してマップされ、Spring DAO/Services レイヤーを介してアクセスされます。

私がやろうとしているのは、重複した顧客をまとめることです。したがって、実際に行う必要があるのは、顧客 B に関連付けられたすべての注文と住所であり、顧客 A を指すように customer_id 外部キーを更新する必要があります。次に、顧客 B に無効ビットを設定する必要があります。

これらの単純なクエリをデータベースに送信する代わりに、Hibernate はおかしくなり、大量の選択と更新のクエリを発行します。特に、注文に関連付けられたすべての注文項目を選択します (これは 定義されEAGERており、この点は変更できないためです)。更新前に選択を取得して停止するために、次のような通常の上に休止状態エンティティ注釈を追加しようとしましたjavax.persistence.Entity:

これは、テーブル内の単一のアイテムのみを更新する単純なクエリを除いて、何の影響もないように見えました。

次の休止状態基準を使用してオブジェクトを取得します。

次に、すべての住所と注文オブジェクトを顧客 B から顧客 A に移動し、

両方の顧客オブジェクトで。これにより、関連付けられたすべてのオブジェクト (つまり、OrderItems、Products、ProductType、ProductPricingTmpl など) を取得する大量の select ステートメントが作成されます。

これらの選択を削除する必要があります! それらがなければ、クエリは正常に見えて効率的です! Update 出力クエリは完璧で動的です。

何か案は?

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

sql - SQL 構文を更新する - 連結を使用してフィールドをそれ自体にリセットする - SQLServer 2005

この構文を使用するとエラーが発生します:

私のためにこれをするのはあまり幸せではありません。連結の「+」が選択ステートメントで機能することを知っているので、それは正しい構文です。ここには何か他のものがあります...そして、括弧も削除しようとしました。

例:

field1 = 'Cheese' および field2 = 'ConQueso' の
場合、私の更新では、field1 = 'Cheese' のすべてのレコードを field1 = 'Cheese - ConQueso' に設定する必要があります。


編集:
両方のフィールドはテキストフィールドです

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

sql - テーブルの列をシーケンスに更新する

ストアド プロシージャの結果を使用してテーブルの列を更新したい

ノードターミニスティックであるため、UDF を使用できません。このようなものは機能しません

私はこれに間違った方法でアプローチしていると感じています。

このようなテーブルを更新したいだけです

1 1
2 2
1 4
1 4
5 5
1 2

このように見えるように

1 1
2 2
3 4
4 4
5 5
6 2

0 投票する
5 に答える
8579 参照

sql-server - selectステートメントからのSQL更新

申し訳ありませんが、関連性のない解決策を避けるために、多くの情報を提供しようとしています。

私の目標は、少なくとも1つのUPDATEステートメントをSELECTステートメントに埋め込んで、selectステートメントが実行される直前に計算値を更新できるようにすることです(SELECTのTRIGGERのように考えてください)。使用しているシステムに制約されているため、VIEWはすぐには解決できません(以下を参照)。

機能に弱いサードパーティの商用ERPをカスタマイズしています(システムは無名のままです!-結果として、聞いたことはありませんが、自家栽培ではありません)。これには、テキスト/GUIを使用してSELECTクエリを作成できる既定のクエリ機能があります。クエリを保存すると、ユーザーはクエリをクリックして実行し、結果を確認できます。ERPはMSSQLServer2000上で実行されます。現在、バージョンアップグレードはカードに含まれていません。ERPの外で必要な機能セットを好きな言語で書くことができます。機能がそれを正当化するのであれば、私は過去にこれを行いました。しかし、私のユーザーコミュニティは、ERPシステムでカスタマイズを行うことができれば簡単だと感じています。

クエリは任意に複雑にすることができますが、ERPパッケージはSQLSelectステートメント自体を構築します。コンパイルされたERPの内部は、次のようなものです(これは単なる推測です!):

GUIビルダーは、初心者ユーザーがfieldListなどを作成するのに役立ちますが、上記のように組み合わせたときにSQLが有効である限り、それをバイパスして句をテキストで記述することができます。

select句、where句などにあるかどうかにかかわらず、SELECTステートメントの副作用としてストアドプロシージャを実行するための呪文を見つけることができないようです。システムをジェイルブレイクする方法は本当に気にしません-安定した基盤となるSQLサーバー自体のセキュリティを変更する必要がない限り、SQLインジェクション攻撃は問題ありません。UDFを見てきましたが、UPDATEステートメントをスカラーUDFに入れることはできず、テーブルUDFの戻り値を変更しようとしても意味がありません(またはそうしますか?)。VIEW内から更新できる場合は、例を見たいと思いますが、VIEWを使用して列を計算できることはわかっていますが、それは私が探している解決策ではありません。ある種のXP_を使用してこれを達成できることについての示唆的な声明をオンラインで読みましたが、どのXP_またはそれを行う方法についてはわかりません。

この質問は、それ自体では解決策ではありません。selectステートメント内のテーブルを更新する

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

sql - 検索と置換クエリで SQLite データベースを更新する方法は?

私の SQL の知識は、特に SQLite について非常に限られていますが、これはある種の一般的なクエリになると思います...または、検索と置換のせいではないかもしれません...

もちろん、さまざまなフィールドを持つ SQLite の音楽データベースがありますが、ここで重要なのは "media_item_id" と "content_url" です。

「content_url」の例を次に示します。

「content_url」がそのパターンに従い、それ(「content_url」)を別のものに置き換えるようなエントリを検索するクエリを探しています。

たとえば、一般的な「content_url」は次のようになります。

そして、これらすべてのエントリを次のものに置き換えたい:

1 つのクエリでそれを行うにはどうすればよいですか?

PS: 私は Firefox SQLite Manager を使用しています (Windows 用のより優れた無料の代替手段が見つかりませんでした)。