1. 程式人生 > >SQL中的區域性變數和全域性變數

SQL中的區域性變數和全域性變數

在SQL中,我們常常使用臨時表來儲存臨時結果,對於結果是一個集合的情況,這種方法非常實用,但當結果僅僅是一個數據或者是幾個資料時,還要去建一個表,顯得就比較麻煩,另外,當一個SQL語句中的某些元素經常變化時,比如選擇條件,(至少我想)應該使用區域性變數。當然MS SQL Server的全域性變數也很有用。

區域性變數

宣告:DECLARE @local_variable data_type

@local_variable 是變數的名稱。變數名必須以 at 符 (@) 開頭。data_type 是任何由系統提供的或使用者定義的資料型別。變數不能是 text、ntext 或 image 資料型別。

示例: use master declare @SEL_TYPE char(2) declare @SEL_CUNT numeric(10) set @SEL_TYPE = ‘U’/user table/ set @SEL_CUNT = 10

/返回系統中使用者表的數目/ select @SEL_CUNT = COUNT(*) from sysobjects where type = @SEL_TYPE

select @SEL_CUNT as 'User table '‘s count’

如果要返回系統表的數目,可以用set @SEL_TYPE = ‘S’

可能這個例子並不能說明使用變數的好處,我只是想說明使用方法。當一組(幾個甚至幾十個)SQL語句都使用某個變數時,就能體會到他的好處了。

全域性變數

全域性變數是系統預定義的,返回一些系統資訊,全域性變數以兩個@@開頭。

全域性變數是sql server(WINDOWS平臺上強大的資料庫平臺)系統內部使用的變數,其作用範圍並不侷限於某一程式,而是任何程式均可隨時呼叫全域性變數通常儲存一些sql server(WINDOWS平臺上強大的資料庫平臺)的配置設定值和效能統計資料。使用者可在程式中用全域性變數來測試系統的設定值或Transact-SQL命令執行後的狀態值。有關sql server(WINDOWS平臺上強大的資料庫平臺) 全域性變數的詳細情況請參見附錄。