T SQL查詢高階 變數

2021-08-14 15:53:32 字數 2308 閱讀 4576

變數對於一種語言是必不可少的一部分,當然,對於t-sql來講也是一樣。在簡單查詢中,往往很少用到變數,但無論對於複雜的查詢或儲存過程中,變數都是必不可少的一部分.

在t-sql中,變數按生存範圍可以分為全域性變數(global variable)和區域性變數(local variable).

1.全域性變數是由系統定義的,在整個sql server例項內都能訪問到的變數.全域性變數以@@作為第乙個字元,使用者只能訪問,不能賦值。

2.區域性變數由使用者定義,生命週期只在乙個批處理內有效。區域性變數以@作為第乙個字元,由使用者自己定義和賦值。

乙個簡單的例子如下

因為全域性變數僅僅是用於讀取系統的一些引數,具體每個全域性變數所代表的含義請google之…本文主要介紹區域性變數(也就是使用者自定義變數).

在t-sql中,區域性變數是乙個儲存指定資料型別單個值的物件.t-sql中對變數的定義實際上和大多數高階語言一樣.

區域性變數在使用中常常用於以下三種用途:

1.在迴圈語句中記錄迴圈的次數或者用於控制迴圈的次數.

2.用於儲存流程語句來控制流程走向

3.儲存儲存過程或者函式的返回值

實際上,儲存任何業務資料的區域性變數都屬於這一類應用.

區域性變數的宣告必須以"declare"作為關鍵字,變數的命名必須以"@"作為變數名的第乙個字元.必須為所宣告的變數提供乙個資料型別和資料長度.如:

區域性變數的資料型別不能為text,ntext,和image型別,當對於字元型變數只提供資料型別沒有提供資料長度時,資料長度預設為1.

一切只宣告沒有賦值的區域性變數的初始值都為」null」.

在t-sql中,區域性變數的賦值是通過」set」關鍵字和」select」關鍵字實現的.

實際上,使用set或者是select取決於下面幾個因素

1.當對多個變數賦值時

select關鍵字支援多個變數賦值,而set關鍵字只支援一次對乙個值賦值

2.當賦值時表示式返回值的個數

使用set進行賦值時,當表示式返回多個值時,報錯.而select關鍵字在賦值表示式返回多個值時,取最後乙個.

比如,假設***表只有以下幾條資料:

當使用select關鍵字進行時,可以取返回值的最後乙個。

3.當表示式未返回值時

使用set對區域性變數賦值時,如果賦值表示式未返回值,則區域性變數變為null,而select對表示式賦值時,如果表示式未返回值,則區域性變數保持原值.

4.當…你是乙個標準愛好者時

堅決使用set關鍵字對區域性變數賦值吧,因為set是ansi標準……

5.當…你懶得記上述何時使用set或是何時使用select時

好吧,我承認我也很懶.那你按照乙個簡單的方式區別:當你的賦值語句需要引用乙個資料來源(表)時,使用select.除此之外,使用set.

區域性表變數是乙個特殊的區域性變數.和臨時表不同,區域性表變數具有一切區域性變數的特點.在查詢中,因為區域性表變數是存在記憶體中,而不是硬碟中,所以速度會遠遠快於臨時表或是實際表,區域性表變數最多的使用時在查詢中充當多個表做連線時的中間表,比如:

這樣會大大提高多表連線的查詢速度.

本文介紹了變數種類以及區域性變數的使用範圍,定義以及賦值方法.還簡單介紹了表變數。在複雜查詢中,系統的了解t-sql的變數是寫出好的查詢語句必不可少的一部分。

T SQL查詢高階 變數

變數對於一種語言是必不可少的一部分,當然,對於t sql來講也是一樣。在簡單查詢中,往往很少用到變數,但無論對於複雜的查詢或儲存過程中,變數都是必不可少的一部分.在t sql中,變數按生存範圍可以分為全域性變數 global variable 和區域性變數 local variable 1.全域性變...

T SQL程式設計與高階查詢

一 t sql語句分類 1 資料定義語言 ddl 如 create打頭 2 資料控制語句 dcl 用來控制資料庫的一些許可權 3 資料操作語句 dml 運算元據的命令 如 select update delete insert 等 4 流程控制語句 fcl 如 if else while 等 二 變...

2017 03 10 T sql 語句 高階查詢

t sql語句 建立資料庫 1,點選新建查詢,在彈出的頁面上進行 編寫。點選可用資料庫,編寫前確定當前操作的頁面是自己想要進行操作的介面。2,資料庫建立語句 create datebase 資料庫名 資料庫名不能用漢字,不能以數字符號開頭 寫完後選中當前語句選擇 執行 想要執行某句 就單獨選中那句 ...