SQL Serverでは、関連するマルチテーブルUPDATEを使用する方法

SQL ServerでSELECTから更新する方法

この記事では、更新および使用を挿入しながら、インナー更新データ、MERGE参加について説明します。

 

テキストフレーズ:

  1. 間接的にテーブルの内容を変更:間接的にテーブルを更新

  2. 直接参照:直接参照

  3. 使用してデータのサブセット:データのサブセットを使用することにより、

  4. 二次クエリステートメント:補助クエリ

  5. UPDATEの実行:upadteを実行します

  6. 簡潔には、探検:簡単な紹介を

  7. このアクションを実行する:これを行ってください

  8. 互いに比較:互いに比較

  9. 効果的に同期する:効率的な同期を

  10. 操作機能:操作機能

  11. この機能は本当にすることができますどのように強力:この場所の最も強力な機能

  12. 最初の数行:最初の数行

  13. 自己説明:自己説明

  14. 後続の分岐ロジックで次の分岐ロジックに

  15. コンペアマッチレコード:比較のレコードをマッチング

  16. 深い理解:固体理解しています

 

ほとんどの状況では、SQLの更新を使用して実行されている  直接参照を  (特定のテーブルにUPDATE books SET books.title = 'The Hobbit' WHERE books.id = 1)。 

ほとんどの場合、SQLは、特定のテーブル(UPDATEブックセットのbooks.title =「更新するために使用される books.id = 1ホビット」) されている直接参照実行します。

しかし、機会に、それがために有用であることが証明される  テーブルの内容を変更し  、間接的に二次照会ステートメントから得られたデータのサブセットを使用することにより、。

時々 、しかし、二次クエリから取得したデータのサブセットを使用することによって、間接的にテーブルの内容を変更有益であることが判明し得ます。

実行 UPDATE  二次使用  SELECT の文は  、主にSQL Serverのバージョンに応じ、あなたが使用しているかに応じて、次のいずれかの方法で達成することができます。 

使用辅助ステートメントは执行UPDATE、使用するSQL Serverのバージョンに応じて、次のいずれかの方法で達成することができます。

私たちは、よ  簡単に探る  あなたがあなたのための最高の作品何を見つけることができるように両方のオプションを。

我々はなります簡単に紹介し、あなたが最も適している方法を見つけるようにすることを、これらの2つのオプション。

INNERを使用すると、内部接続に参加します

すべてのSQL Serverインストールのための最も基本的な方法は  、このアクションを実行するには、 使用する  INNER JOIN2つの異なるテーブルの列の値がされていることにより、  互いに比較します

すべてのSQL Serverのインストールの場合は、これを行う最も基本的な方法を使用することにあるINNER JOINテーブルの列の2つの異なる値がそうすることを、互いに比較

-ブック(primary_author、AUTHOR_ID、タイトル)
-作者(名前、ID)

- 表の本では、authorsテーブルはbooks.author_id = authors.idを介して接続されています。タイトル=「ホビット」データ、修飾books.primary_author = authors.name検索


UPDATE書籍
  SET books.primary_author = authors.name
  ブックスから
  INNERは、著者のJOIN
  books.author_id = authors.id ON
  books.title = 'ホビット'

上記の例では、我々はしている   と一致するフィールド   で「ホビット」のため   の値に一致する、それぞれのクエリ内の両方のテーブル   と  UPDATINGbooks.primary_authorauthors.nameJOININGauthors.idbooks.author_id

上記の例では、我々はUPDATINGbooks.primary_author= authors.nameことによってJOINING、それらのそれぞれの二つのテーブルへのクエリに一致する「ホビット」の値に一致するauthors.idとしますbooks.author_id

同時にUPDATEやINSERTにMERGEを使用しても、MERGEを使用して、更新、挿入

SQL Server 2008およびそれ以降のために、Microsoftは非常に有益な導入  MERGE 、上記と同様な操作  INNER JOIN 方法が、  MERGE 試みはANの両方を実行する  UPDATE と  INSERT 一緒にコマンドを。 

SQL Server 2008およびそれ以降のバージョンについては、Microsoftは非常に便利導入MERGE上記のことを操作INNER JOIN方法が似ているのが、MERGE行おうと  UPDATEしてINSERTコマンド。

これは、  効果的に同期し  たクエリに基づいて、2つのテーブルを2つが一致するため、必要に応じてレコードを更新すると、挿入、行いました。

これは、クエリに基づいて実行されます効率的に同期する二つのテーブル、レコードと更新をし、二つのテーブルの一致に応じて挿入。

-ブック(primary_author、AUTHOR_ID、タイトル)
-作者(名前、ID)
図書INTO MERGE
著者を使用した
  books.author_id = authors.id ON
  THEN MATCHED
  UPDATE SET
    books.primary_author = authors.name
    一致しないTHEN
  INSERT
    (本を.author_id、books.primary_author)
  VALUES
    (authors.id、authors.name)

使用して完全なクエリでは、  MERGE 基本のこと、その後、確かに少し複雑です  INNER JOINが、あなたはどのように把握一度  の操作機能を、あなたはすぐに理解します  。この機能は、本当にすることができますどのように強力

完全な問い合わせを使用する場合はMERGE、確かに基本的なクエリよりも複雑であるINNER JOINが、一度マスターし操作する機能、あなたはすぐに理解し、この機能の本当の力を

最初の数行は  かなりある  自己説明

最初の数行はある自明

本INTO MERGE 
  著者を使用した
  books.author_id = authors.id ON

我々はしたい  MERGE INTO (UPDATE/ INSERT)  books 二次使用してテーブル  authors 表を、私たちは同じに基づいて2つのマッチングしている  books.author_id = authors.id の比較。

私たちは、補助テーブルを使用するauthorsテーブルをMERGE INTOUPDATEINSERT)、booksおよび同じ我々に基づいてbooks.author_id = authors.id2試合を比較するために使用します。

どこで  MERGE コマンドが異なるがあり  、次の分岐ロジックで

前記MERGE異なるコマンドは、後続の分岐ロジック

MATCHED THEN 
  UPDATE SET
    books.primary_author = authors.name

ここでは、記録時にのみアクションを実行するためにSQLを求めている  MATCHED 既存のレコードが見つかったとき- 。その場合には、我々は標準行い  UPDATE 、我々が設定し、以前と同じように  books.primary_author 等しくするフィールド  authors.name のフィールドを。

ここでは、場合にのみ、SQLレコードを尋ねるMATCHED-レコードを既存の操作を実行する場合にのみ見つけること。この場合、我々はなりUPDATE、以前のように標準を行うbooks.primary_authorフィールドが等しく設定されているauthors.nameフィールド。

最後に、クエリ発見した場合  、一致比較、レコード  が存在しない、私たちが代わりに行います  INSERT

問い合わせが何も存在しないことがわかった場合は最後に、一致するレコードの比較、我々が実行されますINSERT

一致しないTHEN 
  INSERT
    (books.author_id、books.primary_author)
  VALUES
    (authors.id、authors.name)

ここでは、単純にSQLを求めている  INSERT に新しいレコード  books のテーブルとの値に沿って通過する  author_id と  primary_author 、関連するからつかんフィールド、  authors テーブルレコード。

ここでは、我々は単にSQLを必要としますINSERTに新しいレコードを挿入しbooks、テーブル、および送信するには、関連テーブルのレコードから取得author_idし、  primary_authorフィールドの値authors

私たちの最終的な結果  MERGE ステートメントがためということで  、すべて  では著者  authors テーブル、我々は、対応する本が中に存在するかどうかを確認します  books。 

MERGEテーブルのために、文の最終結果それぞれの著者authors、私たちは持っているが、対応する本があることを確認しbooksに。

レコードが見つかった場合、我々は確実に  books.primary_author 使用して設定され  UPDATE、かつ一致が見つからなかった場合には、我々は新しいレコードを追加します  books

レコードが見つかった場合、我々は確認してbooks.primary_authorセットを使用してUPDATE、一致が存在しない場合に発見され、私たちは、新しいレコードを追加する必要がありますbooks

それによって、あなたがすべき  固体理解してい  に使用することができる2つの異なる方法の  UPDATE 二次、比較使用してSQLのレコード  SELECT 文を。

このように、あなたは使うべきUPDATE二次比較SELECTに記録されているSQL文の2種類の方法-depth理解を

オリジナル:

https://chartio.com/resources/tutorials/how-to-update-from-select-in-sql-server/

侵害が私達に連絡してください場合は、世界でのコードによって翻訳この記事は、不正確さが、正しい私にしてください。

 

 

 

コードと世界 | 興味深い公共の数プレス、2次元コード認識、利息

おすすめ

転載: www.cnblogs.com/amusement1992/p/12018226.html
おすすめ