T-SQLのSET
とSELECT
の間に機能/パフォーマンスの違いがある場合は、誰かが特定できますか?どのような条件下でどちらかを選択する必要がありますか?
更新:
回答してくれたすべての人に感謝します。数人の人が指摘しているように、 this の記事 Narayana Vyas Kondreddi にはたくさんの良い情報があります。また、記事を読んだ後、ネットを熟読し、 this 要約版 Ryan Farley を見つけました。これは、ハイライトを提供し、それらを共有すると思いました。
SETは変数に値を割り当てるANSI標準の方法ですが、SELECTはそうではありません。ただし、SELECTを使用して、一度に複数の変数に値を割り当てることができます。 SETを使用すると、一度に1つの変数にのみデータを割り当てることができます。そのため、パフォーマンスではSELECTが勝者になります。
詳細と例については、以下を参照してください。 変数に値を割り当てるときのSETとSELECTの違い
SQL Server:SELECTを使用する必要がある状況の1つは、@@ ERRORと@@ ROWCOUNTを割り当てる場合です。これらは同じステートメントで設定する必要があるためです(そうしないとリセットされます)。
SELECT @error = @@ERROR, @rowcount = @@ROWCOUNT
(SETは一度に1つの値でのみ機能します)
Setは、変数に値を割り当てるためのANSI標準です。
Selectは、複数の変数に値を割り当てるときに使用できます。
詳細については、 Narayana Vyas によるこの詳細な投稿をお読みください。
変数に値を割り当てる両方を設定および選択します。 selectを使用すると、複数の変数に値を割り当てることができます
何かのようなもの
@ var1 = 1、@ var2 = 2を選択します
ここで、setを使用する場合は、個別のsetステートメント(値を割り当てるANSI方式)を使用する必要があります。
@ var1 = 1を設定します
@ var2 = 2を設定します
これがお役に立てば幸いです
乾杯