sqlserver存儲過程

sqlserver存儲過程

ID:36422347

大小:279.10 KB

頁數(shù):47頁

時間:2019-05-09

sqlserver存儲過程_第1頁
sqlserver存儲過程_第2頁
sqlserver存儲過程_第3頁
sqlserver存儲過程_第4頁
sqlserver存儲過程_第5頁
資源描述:

《sqlserver存儲過程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、1Transact-SQL程序設(shè)計在Transact-SQL語言中標(biāo)準(zhǔn)的SQL語句暢通無阻。Transact-SQL也有類似于SQL語言的分類不過做了許多擴(kuò)充。本章中,我們介紹了標(biāo)準(zhǔn)SQL語言的語法及其基本使用方法,在此只介紹Transact-SQL語言中的其它部分。1變量2流程控制命令3其它命令4常用函數(shù)21.變量Transact-SQL中使用兩種變量:局部變量和全局變量。1.局部變量局部變量是用戶可自定義的變量,它的作用范圍僅在程序內(nèi)部。在程序中通常用來儲存從表中查詢到的數(shù)據(jù),或當(dāng)作程序執(zhí)行過程中暫存變量使用。局部變量必須以@開頭,而且必須先用D

2、ECLARE命令說明后才可使用。其說明形式為:DECLARE@變量名變量類型[,@變量名變量類型…]31.變量在Transact-SQL中不能像在一般的程序語言中一樣使用“變量=變量值”來給變量賦值,必須使用SELECT或SET命令來設(shè)定變量的值。其語法如下:SELECT@局部變量=變量值SET@局部變量量=變量值【例】聲明一個長度為8個字符的變量id,并賦值。declare@idchar(8)select@id=‘10010001’42.全局變量全局變量是SQLServer系統(tǒng)內(nèi)部使用的變量,其作用范圍并不局限于某一程序,而是任何程序均可隨時調(diào)用。

3、全局變量通常存儲一些SQLServer的配置設(shè)定值和效能統(tǒng)計數(shù)據(jù)。用戶可在程序中用全局變量來測試系統(tǒng)的設(shè)定值或Transact-SQL命令執(zhí)行后的狀態(tài)值。全局變量不是由用戶的程序定義的,它們是在服務(wù)器級定義的,只能使用預(yù)先說明及定義的全局變量。引用全局變量時必須以“@@”開頭。局部變量的名稱不能與全局變量的名稱相同,否則會在應(yīng)用中出錯。53.注釋符在Transact-SQL中可使用兩類注釋符:1.ANSI標(biāo)準(zhǔn)的注釋符“--”用于單行注釋。2.與C語言相同的程序注釋符號,即“/*……*/”,/*用于注釋文字的開頭,*/用于注釋文字的結(jié)尾,可在程序中標(biāo)識

4、多行文字為注釋。62.流程控制命令Transact-SQL語言使用的流程控制命令主要有以下幾種控制命令。2.1BEGIN…END其語法如下:BEGIN<命令行或程序塊塊>ENDBEGIN…END用來設(shè)定一個程序塊,將在BEGIN…END內(nèi)的所有程序視為一個單元執(zhí)行。BEGIN…END經(jīng)常在條件語句(如IF…ELSE)中使用。在BEGIN…END中可嵌套另外的BEGIN…END來定義另一程序塊。72.2IF…ELSE其語法如下:IF<條件表達(dá)式式><命令行或程序塊塊>[ELSE[條件表達(dá)式式]<命令行或程序塊塊>]其中:<條件表達(dá)式>可以是各種表達(dá)式的

5、組合,但表達(dá)式的值必須是邏輯值“真”或“假”。ELSE子句是可選的,最簡單的IF語句沒有ELSE子句部分。IF…ELSE用來判斷當(dāng)某一條件成立時執(zhí)行某段程序,條件不成立時執(zhí)行另一段程序。如果不使用程序塊,IF或ELSE只能執(zhí)行一條命令。IFELSE可以進(jìn)行嵌套,在Transact-SQL中最多可嵌套32級。8【例】從SC數(shù)據(jù)表中求出學(xué)號為S1同學(xué)的平均成績,如果此平均成績大于或等于60分,則輸出“pass”信息。if(selectavg(score)fromscwheresno='S1'groupbysno)>=60beginprint'pass'e

6、nd92.3CASECASE命令有兩種語句格式:格式1:CASE<運算式>WHEN<運算式>THEN<運算式>…WHEN<運算式>THEN<運算式>[ELSE<運算式>]END該語句的執(zhí)行過程是:將CASE后面表達(dá)式的值與各WHEN子句中的表達(dá)式的值進(jìn)行比較,如果二者相等,則返回THEN后的表達(dá)式的值,然后跳出CASE語句,否則返回ELSE子句中的表達(dá)式的值。ELSE子句是可選項。當(dāng)CASE語句中不包含ELSE子句時,如果所有比較失敗時,CASE語句將返回NULL。10【例】從學(xué)生表S中,選取SNO,SEX,如果SEX為“男”則輸出“M”,如果為“女

7、”輸出“F”。SELECTSNO,SEX=CASEsexWHEN'男'THEN'M'WHEN'女'THEN'F'ENDFROMS11格式2:CASEWHEN<條件表達(dá)式>THEN<運算式>…WHEN<條件表達(dá)式>THEN<運算式>[ELSE<運算式>]END該語句的執(zhí)行過程是:首先測試WHEN后的表達(dá)式的值如果其值為真,則返回THEN后面的表達(dá)式的值,否則測試下一個WHEN子句中的表達(dá)式的值如果所有WHEN子句后的表達(dá)式的值都為假,則返回ELSE后的表達(dá)式的值如果在CASE語句中沒有ELSE子句,則CASE表達(dá)式返回NULL。注:CASE命令可以嵌套

8、到SQL命令中。12【例】從SC表中查詢所有同學(xué)選課成績情況,凡成績?yōu)榭照咻敵觥拔纯肌?、小?0分輸出“不及

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。