質問: 変数割り当て時のsetとselectの違い t-sqlで変数を代入するときのsetステートメントとselectステートメントの違いは何ですか?
回答: 引用符 は、 この記事の要約 : setは変数割り当てのansi標準ですが、selectはそうではありません。 setは一度に1つの変数しか代入できませんが、selectは一度に複数の代入を行うことができます。 クエリから代入する場合、setはスカラ値しか代入できません。クエリが複数の値/行を返す場合、setはエラーを発生させます。 selectは変数の1つを変数に代入し、複数の値が返されたという事実を隠します(したがって、他の場所で問題が発生した理由を知ることはおそらくないでしょう。 値が返されない場合にクエリから代入すると、setはnullを代入します。selectは代入をまったく行いません(したがって、変数は以前の値から変更されません)。 速度の違いに関しては - setとselectの間に直接の違いはありません。ただし、一度に複数の代入を行うselectの機能は、setよりもわずかに速度が向上します。