5月29日研究ノートを導入SQLServerのローカル変数とグローバル変数

 

変数

メモリに格納されたデータは、変数と呼ばれる量を変更することができます。メモリ内の情報を保存するには、ユーザーは、情報を記憶するための手段、およびメモリセルの名前を指定する必要があります。

変数の関数である情報へのアクセスを容易にするために。Transact-SQLのは、他のグローバル変数で、1がローカル変数である、2つの変数を使用することができます。

データは、アカウントに格納されたローカルおよびグローバル変数の間の主な違いは、同じスコープではありません。

 

1、ローカル変数

ローカル変数は、ユーザー定義、その範囲は唯一のプログラム内であることができる変数です。ローカル変数の名前は、ユーザー定義です、

SQLserver2012識別子の命名規則に準拠するためにローカル変数名、名前付きのローカル変数名は@で始まる必要があります。

1.1ローカル変数を宣言

構文:

DECLARE 
{ 
@varaible_nameのデータ型を[ 、... N ] 
}

パラメータ:

@varaible_name:ローカル変数の変数名

データ型:使用されるローカル変数のデータ・タイプは、システムは、テキスト、NTEXT、画像の種類を除いて、すべてのデータ型とユーザ定義のデータ型であってもよいです。

たとえば、変数を宣言@testname

次のようにSQL文は次のとおりです。

宣言 @testname  NVARCHAR10

 

ローカル変数のための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  NVARCHAR10)、@c  INT 
選択 @a = 1@b = ' ツェー先生'@c = 2

集合代入文のSQLを使用します。

単純な代入例:

宣言 @testnameの データ型はnvarchar20 に設定 @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服务器安装日期、版本,以及处理器的类型。

おすすめ

転載: www.cnblogs.com/Sungeek/p/10945374.html