批處理
一、定義:
1、包含一個或多個的T-SQL語句語句的組,從應用程序一次性的發送到SQL SERVER中執行
2、可執行計劃:SQL SERVER將批處理語句編譯成一個可執行單元。執行計劃中的語句每次招待一條。
3、一個批處理以GO結束。
二、建立批處理時應遵循以下規則:
1、所有批處理必須以CREATE語句開頭。
2、不能在同一批處理中更改表結構,再引用新添加的列。
3、EXECUTE語句是批處理語句的第一句,則不需要加EXECUTE關鍵字;否則,需要添加EXECUTE關鍵字。
控制流語句
一、作用:程序流程控制語句主要用於控制T-SQL語句、語句塊和存儲過程的執行過程。
1.1、begin-end語句塊
1.1.1、作用:將多條T-SQL語句組合在一起,組成一個邏輯塊,當控制流語句必須執行一個或兩個以上的T-SQL語句的語句塊時使用。
1.1.2、說明
a、相當於很多語言中的{}。
b、將多條語句封裝成一條語句塊,整個語句塊等同於一條語句。
c、常用於if..else while..中處理一條語句的不足。
1.2、無條件轉移(GOTO)
格式:GOTO標號處
作用:本語句將T-SQL 語句的執行順序無條件的轉移到用戶指定的標號處(遞歸運算)
示例:使用T-SQL語句,求10的階乘
DECLARE @m int=1,@n int=2
xx: --指定標號處
SELECT @m=@m*@n;
SELECT @n=@n+1;
IF(@n <=10)
goto xx
else
select @m as '階乘和',@n as '自增值'
運行結果如下:
1.3、判斷語句(while)
while(布爾表達式)
begin
語句塊
end
a、作用:當布爾表達式爲真時,會持續執行語句塊,直到條件不成立時
b、同時使用的語句有兩個:break,continue
break:執行語句時,程序無條件退出整個while循環
continue:執行語句時,程序跳出continue後面的語句,而立即執行下一層循環
1.4、waitfor
a、作用:掛起執行連接,直到超過指定間隔或者達到一天中指定的時間
b、語法格式:
指定時間間隔:waitfor delay 指定時間間隔
指定時間點:waitfor time 時間點
在執行語句前等待2秒
waitfor delay '00:00:02'
select * from student
指定時間點,執行語句(指定到每天2點執行)
waitfor time '02:00:00'
select * from student