SQL Server控制語句的基本應(yīng)用
1.語句塊(BEGIN…END)
語句塊語法如下:
BEGIN
<SQL語句或程序塊>
END
BEGIN…END用來設(shè)定一個語句塊,可以將多條Transact-SQL語句封裝起來構(gòu)成一個語句塊,在處理時,整個語句塊被視為一條語句。BEGIN…END經(jīng)常用在條件語句中,如IF…ELSE 或WHILE循環(huán)中。BEGIN…END語句可以嵌套使用。
2.判斷語句(IF…ELSE)
通常計算機是按順序執(zhí)行程序中的語句,但是在許多情況下,語句執(zhí)行的順序以及是否執(zhí)行依賴于程序運行的中間結(jié)果,在這種情況下,必須根據(jù)某個變量或表達式的值作出判斷,以決定執(zhí)行哪些語句或不執(zhí)行哪些語句。這時可以利用IF…ELSE語句作出判斷,選擇執(zhí)行某條語句或語句塊。
判斷語句語法如下:
IF <條件表達式>
<命令行或語句塊1>
[ ELSE [條件表達式]
<命令行或語句塊2> ]
3 檢測語句(IF…EXISTS)
IF…EXISTS語句用于檢測數(shù)據(jù)是否存在,而不考慮與之匹配的行數(shù)。對于存在性檢測而言,使用IF…EXISTS要比使用COUNT(*)>0好,效率更高,因為只要找到第一個匹配的行,服務(wù)器就會停止執(zhí)行SELECT語句。
檢測語句語法如下:
IF [NOT] EXISTS (SELECT查詢語句)
<命令行或語句塊1>
[ELSE]
<命令行或語句塊2>
4 多分支判斷語句(CASE…WHEN)
CASE…WHEN結(jié)構(gòu)提供了比IF…ELSE結(jié)構(gòu)更多的選擇和判斷機會,使用它可以很方便地實現(xiàn)多分支判斷,從而避免多重IF…ELSE語句嵌套使用。多分支判斷語句CASE…WHEN語法有兩種格式:
第一種格式語法如下:
CASE <算術(shù)表達式>
WHEN <算術(shù)表達式> THEN <運算式>
WHEN <算術(shù)表達式> THEN <運算式>
[ELSE <算術(shù)表達式>]
END
第二種格式語法如下:
CASE
WHEN <條件表達式> THEN <運算式>
WHEN <條件表達式> THEN <運算式>
[ELSE <運算式>]
END
5 循環(huán)語句(WHILE)
循環(huán)語句可以設(shè)置重復(fù)執(zhí)行SQL語句或語句塊的條件,只要指定的條件為TRUE(條件成立),就重復(fù)執(zhí)行語句。
循環(huán)語句語法如下:
WHILE <條件表達式>
BEGIN
<命令行或程序塊>
[BREAK]
[CONTINUE]
[命令行或程序塊]
END
6 跳轉(zhuǎn)語句(GOTO)
使用跳轉(zhuǎn)語句GOTO可以改變程序執(zhí)行的流程,使程序跳到標(biāo)有標(biāo)識符的指定程序行,再繼續(xù)往下執(zhí)行,作為跳轉(zhuǎn)目標(biāo)的標(biāo)識符可以是數(shù)字與字符的組合,但必須以“:”結(jié)尾。
跳轉(zhuǎn)語句語法如下:
GOTO 標(biāo)識符:
7 返回語句(RETURN)
返回語句用于結(jié)束當(dāng)前程序的執(zhí)行返回到上一個調(diào)用它的程序或其它程序,在括號內(nèi)可指定一個返回值。返回語句可使程序從批處理、存儲過程、觸發(fā)器中無條件退出,不再執(zhí)行RETURN之后的任何語句。返回語句語法如下:
RETURN ([整數(shù)值])
8 延期執(zhí)行語句(WAIT…FOR)
WAITFOR語句用來暫時停止程序執(zhí)行,直到所設(shè)定的等待時間已過或所設(shè)定的時刻已到,才繼續(xù)往下執(zhí)行。其中時間必須為DATETIME 類型的數(shù)據(jù),延遲時間和時刻均采用“HH:MM:SS”格式,在WAITFOR語句中不能指定日期,并且時間長度不能超過24小時。
延期執(zhí)行語句語法如下:
WAITFOR { DELAY <‘時間'> | TIME <‘時間'> }
sql_statement
DELAY:用來設(shè)定等待的時間間隔,最多可達24 小時。
TIME:用來設(shè)定等待結(jié)束的時間點。
sql_statement:設(shè)定的等待時間已過或所設(shè)定的時刻已到,要繼續(xù)執(zhí)行的SQL操作語句。
相關(guān)文章
oracle忘記sys/system/scott用戶密碼的解決方法
一、忘記除SYS、SYSTEM用戶之外的用戶的登錄密碼。 二、忘記SYS用戶,或者是SYSTEM用戶的密碼。 三、如果SYS,SYSTEM用戶的密碼都忘記或是丟失。 解決方法2013-03-03SQL Server無日志恢復(fù)數(shù)據(jù)庫(2種方法)
SQL Server數(shù)據(jù)庫中的日志文件可能會由于一些突發(fā)事件或者失誤造成丟失的嚴(yán)重后果,大家都知道,SQL Server數(shù)據(jù)庫中日志文件是很重要的,所以要及時的將丟失的日志文件給找回來。下文就為大家介紹一種恢復(fù)數(shù)據(jù)庫日志文件的方法。2015-08-08數(shù)據(jù)庫性能優(yōu)化三:程序操作優(yōu)化提升性能
程序訪問優(yōu)化也可以認(rèn)為是訪問SQL語句的優(yōu)化,一個好的SQL語句是可以減少非常多的程序性能的,下面列出常用錯誤習(xí)慣,并且提出相應(yīng)的解決方案2013-01-01SQL SERVER 數(shù)據(jù)庫備份的三種策略及語句
這篇文章主要介紹了SQL SERVER 數(shù)據(jù)庫備份的三種策略及語句,需要的朋友可以參考下2017-02-02oracle,mysql,SqlServer三種數(shù)據(jù)庫的分頁查詢的實例
oracle,mysql,SqlServer三種數(shù)據(jù)庫的分頁查詢的實例,需要的朋友可以參考一下2013-03-03SQLSERVER數(shù)據(jù)庫備份后無法還原的解決辦法
有時候為了考慮數(shù)據(jù)安全我們都會備份數(shù)據(jù)庫,sqlserver的備份格式一般都是bak結(jié)尾的,但覆蓋時容易出問題,這里簡單介紹下,需要的朋友可以參考下2013-08-08sql server中通過查詢分析器實現(xiàn)數(shù)據(jù)庫的備份與恢復(fù)方法分享
sql server中通過查詢分析器實現(xiàn)數(shù)據(jù)庫的備份與恢復(fù)方法分享,需要備份或還原數(shù)據(jù)庫的朋友可以參考下2012-05-05SQLServer 2005 實現(xiàn)數(shù)據(jù)庫同步備份 過程-結(jié)果-分析
簡單來說,數(shù)據(jù)庫復(fù)制就是由兩臺服務(wù)器,主服務(wù)器和備份服務(wù)器,主服務(wù)器修改后,備份服務(wù)器自動修改2012-06-06