T-SQL查詢進階--流程式控制制語句(1)

來源:互聯網
上載者:User

概述

和其他進階語言一樣,T-SQL中也有用於控制流程程的語句。T-SQL中的流程式控制制語句進一步擴充了T-SQL的力量……使得大部分商務邏輯可以在資料庫層面進行。但很多人對T-SQL中的流程式控制制語句並沒有系統的瞭解,本篇文章會系統的對T-SQL語句中的流程式控制制語句進行系統講解。

基本概念

在沒有流程式控制制語句的情況下,T-SQL語句是按照從上到下的順序逐個執行:

使用流程式控制制語句可以讓開發人員可以基於某些邏輯進行選擇性的跳轉,實現了類似進階語言的跳轉結構:

流程式控制制語句的使用範圍和GO關鍵字

流程式控制制語句只能在單個批處理段(Batch),使用者自訂函數和預存程序中使用。不能跨多個批處理段或者使用者自訂函數和預存程序。

因為這裡重點講到T-SQL查詢語句,所以這裡只講批處理段(Batch).

一個批處理段是由一個或者多個語句組成的一個批處理,之所以叫批處理是因為所有語句一次性被提交到一個SQL執行個體。在這個批處理範圍內,局部變數是互相可見的。

而想讓多個語句分多次提交到SQL執行個體,則需要使用GO關鍵字。GO關鍵字本身並不是一個SQL語句,GO關鍵字可以看作是一個批處理結束的標識符,當遇到GO關鍵字時,當前GO之前的語句會作為一個批處理直接傳到SQL執行個體執行。所以不在同一個批處理內局部變數不可見,也不可對跨批處理的語句使用流程式控制制語句.

在同一個批處理中局部變數互相可見:

在不同批處理中局部變數不可見:

在不同批處理中,流程式控制制語句不能跨批處理:


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.