新聞中心
概述

創(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ù)。
變量對于一種語言是必不可少的一部分,當(dāng)然,對于T-SQL來講也是一樣。在簡單查詢中,往往很少用到變量,但無論對于復(fù)雜的查詢或存儲過程中,變量都是必不可少的一部分.
變量的種類
在T-SQL中,變量按生存范圍可以分為全局變量(Global Variable)和局部變量(Local Variable).
1.全局變量是由系統(tǒng)定義的,在整個SQL SERVER實(shí)例內(nèi)都能訪問到的變量.全局變量以@@作為***個字符,用戶只能訪問,不能賦值。
2.局部變量由用戶定義,生命周期只在一個批處理內(nèi)有效。局部變量以@作為***個字符,由用戶自己定義和賦值。
一個簡單的例子如下
因?yàn)槿肿兞績H僅是用于讀取系統(tǒng)的一些參數(shù),具體每個全局變量所代表的含義請Google之…本文主要介紹局部變量(也就是用戶自定義變量).
局部變量的用途
在T-SQL中,局部變量是一個存儲指定數(shù)據(jù)類型單個值的對象.T-SQL中對變量的定義實(shí)際上和大多數(shù)高級語言一樣.
局部變量在使用中常常用于以下三種用途:
1.在循環(huán)語句中記錄循環(huán)的次數(shù)或者用于控制循環(huán)的次數(shù).
2.用于存儲流程語句來控制流程走向
3.儲存存儲過程或者函數(shù)的返回值
實(shí)際上,存儲任何業(yè)務(wù)數(shù)據(jù)的局部變量都屬于這一類應(yīng)用.
#p#
局部變量的聲明
局部變量的聲明必須以"DECLEAR"作為關(guān)鍵字,變量的命名必須以"@"作為變量名的***個字符.必須為所聲明的變量提供一個數(shù)據(jù)類型和數(shù)據(jù)長度.如:
局部變量的數(shù)據(jù)類型不能為Text,ntext,和Image類型,當(dāng)對于字符型變量只提供數(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取決于下面幾個因素
1.當(dāng)對多個變量賦值時(shí)
SELECT關(guān)鍵字支持多個變量賦值,而SET關(guān)鍵字只支持一次對一個值賦值
2.當(dāng)賦值時(shí)表達(dá)式返回值的個數(shù)
使用SET進(jìn)行賦值時(shí),當(dāng)表達(dá)式返回多個值時(shí),報(bào)錯.而SELECT關(guān)鍵字在賦值表達(dá)式返回多個值時(shí),取***一個.
比如,假設(shè)XXX表只有以下幾條數(shù)據(jù):
當(dāng)使用SELECT關(guān)鍵字進(jìn)行時(shí),可以取返回值的***一個。
3.當(dāng)表達(dá)式未返回值時(shí)
使用SET對局部變量賦值時(shí),如果賦值表達(dá)式未返回值,則局部變量變?yōu)镹ULL,而SELECT對表達(dá)式賦值時(shí),如果表達(dá)式未返回值,則局部變量保持原值.
4.當(dāng)…你是一個標(biāo)準(zhǔn)愛好者時(shí)
堅(jiān)決使用SET關(guān)鍵字對局部變量賦值吧,因?yàn)镾ET是ANSI標(biāo)準(zhǔn)……
5.當(dāng)…你懶得記上述何時(shí)使用SET或是何時(shí)使用SELECT時(shí)
好吧,我承認(rèn)我也很懶.那你按照一個簡單的方式區(qū)別:當(dāng)你的賦值語句需要引用一個數(shù)據(jù)源(表)時(shí),使用SELECT.除此之外,使用SET.
#p#
局部表變量
局部表變量是一個特殊的局部變量.和臨時(shí)表不同,局部表變量具有一切局部變量的特點(diǎn).在查詢中,因?yàn)榫植勘碜兞渴谴嬖趦?nèi)存中,而不是硬盤中,所以速度會遠(yuǎn)遠(yuǎn)快于臨時(shí)表或是實(shí)際表,局部表變量最多的使用時(shí)在查詢中充當(dāng)多個表做連接時(shí)的中間表,比如:
這樣會大大提高多表連接的查詢速度.
總結(jié)
本文介紹了變量種類以及局部變量的使用范圍,定義以及賦值方法.還簡單介紹了表變量。在復(fù)雜查詢中,系統(tǒng)的了解T-SQL的變量是寫出好的查詢語句必不可少的一部分。
原文鏈接:http://www.cnblogs.com/CareySon/archive/2011/10/11/2207330.html
【編輯推薦】
- 數(shù)據(jù)庫點(diǎn)滴之SQL級聯(lián)刪除
- 數(shù)據(jù)庫點(diǎn)滴之精妙SQL語句
- SQL點(diǎn)滴之性能優(yōu)化其實(shí)沒有那么神秘
- SQL點(diǎn)滴之幾個有點(diǎn)偏的語句
- SQL點(diǎn)滴之如何編輯數(shù)據(jù)
標(biāo)題名稱:T-SQL查詢進(jìn)階--變量
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/coicige.html


咨詢
建站咨詢
