日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
T-SQL查詢進(jìn)階--變量

概述

創(chuàng)新互聯(lián)專注于信陽網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供信陽營銷型網(wǎng)站建設(shè),信陽網(wǎng)站制作、信陽網(wǎng)頁設(shè)計(jì)、信陽網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造信陽網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供信陽網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

變量對(duì)于一種語言是必不可少的一部分,當(dāng)然,對(duì)于T-SQL來講也是一樣。在簡單查詢中,往往很少用到變量,但無論對(duì)于復(fù)雜的查詢或存儲(chǔ)過程中,變量都是必不可少的一部分.

變量的種類

在T-SQL中,變量按生存范圍可以分為全局變量(Global Variable)和局部變量(Local Variable).

1.全局變量是由系統(tǒng)定義的,在整個(gè)SQL SERVER實(shí)例內(nèi)都能訪問到的變量.全局變量以@@作為***個(gè)字符,用戶只能訪問,不能賦值。

2.局部變量由用戶定義,生命周期只在一個(gè)批處理內(nèi)有效。局部變量以@作為***個(gè)字符,由用戶自己定義和賦值。

一個(gè)簡單的例子如下

因?yàn)槿肿兞績H僅是用于讀取系統(tǒng)的一些參數(shù),具體每個(gè)全局變量所代表的含義請(qǐng)Google之…本文主要介紹局部變量(也就是用戶自定義變量).

局部變量的用途

在T-SQL中,局部變量是一個(gè)存儲(chǔ)指定數(shù)據(jù)類型單個(gè)值的對(duì)象.T-SQL中對(duì)變量的定義實(shí)際上和大多數(shù)高級(jí)語言一樣.

局部變量在使用中常常用于以下三種用途:

1.在循環(huán)語句中記錄循環(huán)的次數(shù)或者用于控制循環(huán)的次數(shù).

2.用于存儲(chǔ)流程語句來控制流程走向

3.儲(chǔ)存存儲(chǔ)過程或者函數(shù)的返回值

實(shí)際上,存儲(chǔ)任何業(yè)務(wù)數(shù)據(jù)的局部變量都屬于這一類應(yīng)用.

#p#

局部變量的聲明

局部變量的聲明必須以"DECLEAR"作為關(guān)鍵字,變量的命名必須以"@"作為變量名的***個(gè)字符.必須為所聲明的變量提供一個(gè)數(shù)據(jù)類型和數(shù)據(jù)長度.如:

局部變量的數(shù)據(jù)類型不能為Text,ntext,和Image類型,當(dāng)對(duì)于字符型變量只提供數(shù)據(jù)類型沒有提供數(shù)據(jù)長度時(shí),數(shù)據(jù)長度默認(rèn)為1.

一切只聲明沒有賦值的局部變量的初始值都為”NULL”.

局部變量的賦值

在T-SQL中,局部變量的賦值是通過”Set”關(guān)鍵字和”Select”關(guān)鍵字實(shí)現(xiàn)的.

實(shí)際上,使用Set或者是Select取決于下面幾個(gè)因素

1.當(dāng)對(duì)多個(gè)變量賦值時(shí)

SELECT關(guān)鍵字支持多個(gè)變量賦值,而SET關(guān)鍵字只支持一次對(duì)一個(gè)值賦值

2.當(dāng)賦值時(shí)表達(dá)式返回值的個(gè)數(shù)

使用SET進(jìn)行賦值時(shí),當(dāng)表達(dá)式返回多個(gè)值時(shí),報(bào)錯(cuò).而SELECT關(guān)鍵字在賦值表達(dá)式返回多個(gè)值時(shí),取***一個(gè).

比如,假設(shè)XXX表只有以下幾條數(shù)據(jù):

當(dāng)使用SELECT關(guān)鍵字進(jìn)行時(shí),可以取返回值的***一個(gè)。

3.當(dāng)表達(dá)式未返回值時(shí)

使用SET對(duì)局部變量賦值時(shí),如果賦值表達(dá)式未返回值,則局部變量變?yōu)镹ULL,而SELECT對(duì)表達(dá)式賦值時(shí),如果表達(dá)式未返回值,則局部變量保持原值.

4.當(dāng)…你是一個(gè)標(biāo)準(zhǔn)愛好者時(shí)

堅(jiān)決使用SET關(guān)鍵字對(duì)局部變量賦值吧,因?yàn)镾ET是ANSI標(biāo)準(zhǔn)……

5.當(dāng)…你懶得記上述何時(shí)使用SET或是何時(shí)使用SELECT時(shí)

好吧,我承認(rèn)我也很懶.那你按照一個(gè)簡單的方式區(qū)別:當(dāng)你的賦值語句需要引用一個(gè)數(shù)據(jù)源(表)時(shí),使用SELECT.除此之外,使用SET.

#p#

局部表變量

局部表變量是一個(gè)特殊的局部變量.和臨時(shí)表不同,局部表變量具有一切局部變量的特點(diǎn).在查詢中,因?yàn)榫植勘碜兞渴谴嬖趦?nèi)存中,而不是硬盤中,所以速度會(huì)遠(yuǎn)遠(yuǎn)快于臨時(shí)表或是實(shí)際表,局部表變量最多的使用時(shí)在查詢中充當(dāng)多個(gè)表做連接時(shí)的中間表,比如:

這樣會(huì)大大提高多表連接的查詢速度.

總結(jié)

本文介紹了變量種類以及局部變量的使用范圍,定義以及賦值方法.還簡單介紹了表變量。在復(fù)雜查詢中,系統(tǒng)的了解T-SQL的變量是寫出好的查詢語句必不可少的一部分。

原文鏈接:http://www.cnblogs.com/CareySon/archive/2011/10/11/2207330.html

【編輯推薦】

  1. 數(shù)據(jù)庫點(diǎn)滴之SQL級(jí)聯(lián)刪除
  2. 數(shù)據(jù)庫點(diǎn)滴之精妙SQL語句
  3. SQL點(diǎn)滴之性能優(yōu)化其實(shí)沒有那么神秘
  4. SQL點(diǎn)滴之幾個(gè)有點(diǎn)偏的語句
  5. SQL點(diǎn)滴之如何編輯數(shù)據(jù)

當(dāng)前文章:T-SQL查詢進(jìn)階--變量
文章路徑:http://www.5511xx.com/article/coicige.html