変数
メモリに格納されたデータは、変数と呼ばれる量を変更することができます。メモリ内の情報を保存するには、ユーザーは、情報を記憶するための手段、およびメモリセルの名前を指定する必要があります。
変数の関数である情報へのアクセスを容易にするために。Transact-SQLのは、他のグローバル変数で、1がローカル変数である、2つの変数を使用することができます。
データは、アカウントに格納されたローカルおよびグローバル変数の間の主な違いは、同じスコープではありません。
1、ローカル変数
ローカル変数は、ユーザー定義、その範囲は唯一のプログラム内であることができる変数です。ローカル変数の名前は、ユーザー定義です、
SQLserver2012識別子の命名規則に準拠するためにローカル変数名、名前付きのローカル変数名は@で始まる必要があります。
1.1ローカル変数を宣言
構文:
DECLARE { @varaible_nameのデータ型を[ 、... N ] }
パラメータ:
@varaible_name:ローカル変数の変数名
データ型:使用されるローカル変数のデータ・タイプは、システムは、テキスト、NTEXT、画像の種類を除いて、すべてのデータ型とユーザ定義のデータ型であってもよいです。
たとえば、変数を宣言@testname
次のようにSQL文は次のとおりです。
宣言 @testname NVARCHAR(10)
ローカル変数のための1.2、
変数に値を割り当て、二つの一般的な方法があり、1は、SELECT文を使用することで、SET文を使用することです。
select文の割り当てSQLを使用します。
使用db_tse 宣言 @testname NVARCHARを(10 ) を選択 @testname = stname から学生ここで、ID = ' 1001 ' 印刷 @testname
説明:まず、最終的な印刷をプリントアウトし、このデータは@testnameするために割り当てられたID = stname 1001内の変数と生徒のテスト名テーブルを宣言
宣言 @aの int型を 選択 @a = 1つの 印刷 @a
複数の変数への代入には:
宣言 @a INT、@b NVARCHAR(10)、@c INT 選択 @a = 1、@b = ' ツェー先生'、@c = 2
集合代入文のSQLを使用します。
単純な代入例:
宣言 @testnameの データ型はnvarchar(20 ) に設定 @testnameを = " あなたは大丈夫か?「 印刷 @testname
2、グローバル変数
グローバル変数は、定義されたユーザの関与、ユーザーことなく、その範囲はプログラムに限定されるものではないが、内部場合SQLserverシステム事前定義された変数であります
しかし、任意のプログラムは、いつでも呼び出すことができます。一部のグローバル変数は、一般的に構成設定とパフォーマンス統計場合SQLserverを格納するために使用されます。
(1)@@ CONNECTIONS:レコードを前回サーバが接続しようとして成功なしを含め、このサーバーのすべての接続数を開始します。
(2)@@ CPU_BUSY:両方の時間のミリ秒のCPUの動作ユニットにかかわらず、接続の成功または失敗の、前回の起動以後試み以来の接続レコード番号を。
(3)@@ CURSOR_ROWS:サーバが接続、オープンカーソルを除去し、データ線の数を返します。
(4)@@ DBTS:現在のタイムスタンプデータタイプ、現在のデータベースの値を返します。
(5)@@ ERROR:バックT-SQLステートメントの戻りにエラーコード。文がエラーなく正常に実行された後のSQLServerサーバが実行した場合、@@ ERRORが0の値を返します。
(6)@@ FETCH_STATUS:カーソルによって返された最後の値に使用状態に戻り、操作をFETCH、および整数値を返します。
返却値 | 説明 |
0 | 声明の成功をFETCH |
-1 | FETCHステートメントを失敗したか、この行は、結果セットではありません |
-2 | 抽出された行が存在しません |
(7)@@ IDENTITYは:最近挿入されたID列の値を返し、戻り値は数値です。
(8)@@ IDLE:停止状態で、最新の開始以来のミリ秒の場合SQLserverサーバコンピューティング時間で復帰。
(9)@@ IO_BUSY:入力と出力に費やさ最後の起動時間以降場合SQLserverサーバーを算出したミリ秒で復帰。
(10)@@ LOCK_TIMEOUT:現在のロック・タイムアウト設定データを返します。
(11)@@ PACK_RECEIVED:のSQLServerサーバが前回の起動以降、ネットワークから受信したデータパケットの合計数を返します。
(12)@@ PACK_SENT:のSQLServerサーバが最後の起動以来、ネットワークを介して送信するデータパケットの総数を返します。
(13)@@ PROCID:現在ストアドプロシージャIDマーク返します。
(14)@@ REMSERVERは:ログインレコードにリモートのSQLServerサーバーレコードの名前を返します。
(15)@@ ROWCOUNT:返すSQL文は、データ線の数に影響を与えます。すべてのSQL文は、データベース内のデータには影響しません、結果を返すために、グローバル変数は0です。データベースプログラミング、戻り値を検出するために、多くの場合、@@ ROWCOUNT中は、動作をクリアするために、目標に達しています。
(16)@@ SPID:現在のIDがサーバー・プロセスを識別する返します。
(17)@@ TOTAL_ERRORS:SQLServerのサーバーが返す発売以来、読み取りおよび書き込みエラーの合計数が遭遇しました。
(18)@@TOTAL_READ:返回自sqlserver服务器启动以来,读磁盘的次数。
(19)@@TOTAL_WRITE:返回自sqlserver服务器启动以来,写磁盘的次数。
(20)@@TRANCOUNT:返回当前连接中,处于活动状态事务的数目。
(21)@@VERSION:返回当前sqlserver服务器安装日期、版本,以及处理器的类型。