まず、ローカル変数の定義と代入
定義構文:
- DECLAREローカル変数 DECLARE 変数名@ データ型 - ローカル変数の宣言複数の DECLARE 1変数名@データ型1、2変数名@データ型2
割り当て構文:
SET @変数名 =値またはSELECT @変数名 =値
選択されたレコードの使用が一つだけあることを確実にする割り当てを選択します。
実際の使用例:
たとえば、次のように私は今、学生のテーブルを持っています。
私は今、馬李馬のLi、学生やバックの前で学生を識別するために、需要を持って、この要件は、ローカル変数を使用する必要があります。
- 二つの変数の定義、学生数保存、保存の名前 DECLAREは @stuId int型、@stuName VARCHAR(20 ) - 変数の代入名前を付ける SET @stuName = 「馬のLiを」 - マリースクール見つかりました学籍番号とに変数に格納された SELECT @stuId = StudentId から学生WHERE StudentName = @stuName - 学生馬李前と後の情報を見つける SELECT * からの学生をWHERE StudentId =(@stuId - 1)またはStudentId =(@stuId + 1)
次のようにクエリ結果は以下のとおりです。
二、SETおよびSELECTを比較します
利用シナリオ | セット | 選択 |
同時に複数の変数の代入で | サポートしていません。 | サポート |
式は、複数の値を返す場合 | エラー | 変数に返された最後の値 |
式は値を返さない場合には | 変数はNULL値を割り当てられ、 | 変数は、その値を保持しています |
例えば、参加者は、上記の表に従って、次のような違いを使用します。
DECLARE @stuAddress VARCHAR(500)、@stuName VARCHAR(20 ) - SET @stuAddress = '南開区、ホンハムアパート5-5-102'、@stuNameは= '馬のLi'が-そのような割り当てを許可しない SELECTを @ stuAddress = ' 南開区、ホンハムのアパート5-5-102 '、@stuName = ' 馬李は' - 許可 - SET @stuAddress =(SELECT StudentAddress学生から) -許可しない SELECT @stuAddress = StudentAddress から学生 - 許可 SETを @stuAddress =(選択 StudentAddressをから学生1 < 0) - NULL值選択@stuAddress = StudentAddressをから学生1 < 0 - 保持原值
第三に、グローバル変数
グローバル変数は、接頭辞として@記号の両方を使用しています。
すべての変数は使用します: