全域性變數 區域性變數

2021-07-27 10:35:46 字數 3350 閱讀 9792

一.區域性變數:

t-sql中,區域性變數必須是@作為字首.

語法:declare 區域性變數名稱  資料型別

例:declare @num int --申明乙個存放學號的變數 num

二.全域性變數:

sql server中的所有全域性變數都使用兩個@作為字首

使用全域性變數時應該注意以下幾點:

①全域性變數不是由使用者的程式定義的,它們是在伺服器級定義的。

②使用者只能使用預先定義的全域性變數。

③引用全域性變數時,必須以標記符「@@」開頭。

④區域性變數的名稱不能與全域性變數的名稱相同,否則會在應用程式中出現不可**的結果。

select @@error 返回最後執行的 transact-sql 語句的錯誤**(integer) (0,表示沒錯誤;1,表示有錯誤)

select @@identity   --返回最後插入的標識值 

select user_name()    --返回使用者資料庫使用者名稱

select @@connections  --返回自上次sql啟動以來連線或試圖連線的次數。 

select getdate() --當前時間 

select @@cpu_busy/100  --返回自上次啟動sql 以來 cpu 的工作時間,單位為毫秒

use tempdb select @@dbts  as w  --為當前資料庫返回當前 timestamp 資料型別的值。這一 timestamp 值保證在資料庫中是唯一的。 

select @@identity as w --返回最後插入的標識值 

select @@idle  as w  --返回sql自上次啟動後閒置的時間,單位為毫秒 

select @@io_busy as w   --返回sql自上次啟動後用於執行輸入和輸出操作的時間,單位為毫秒 

select @@langid as w   --返回當前所使用語言的本地語言識別符號(id)。 

select @@language as w   --返回當前使用的語言名 

select @@lock_timeout as w  --當前會話的當前鎖超時設定,單位為毫秒。 

select @@max_connections  as w  --返回sql上允許的同時使用者連線的最大數。返回的數不必為當前配置的數值 

exec sp_configure  --顯示當前伺服器的全域性配置設定 

select @@max_precision as w --返回 decimal 和 numeric 資料型別所用的精度級別,即該伺服器中當前設定的精度。預設最大精度38。 

select @@options  as w  --返回當前 set 選項的資訊。 

select @@pack_received as w  --返回sql自啟動後從網路上讀取的輸入資料報數目。 

select @@pack_sent as w  --返回sq自上次啟動後寫到網路上的輸出資料報數目。 

select @@packet_errors as w  --返回自sql啟動後,在sql連線上發生的網路資料報錯誤數。 

select @@servername as w --返回執行sql伺服器名稱。 

select @@servicename  as w --返回sql正在其下執行的登錄檔鍵名 

select @@timeticks  as w --返回sql伺服器一刻度的微秒數 

select @@total_errors as w  --返回 sql伺服器自啟動後,所遇到的磁碟讀/寫錯誤數。 

select @@total_read  as w  --返回 sql伺服器自啟動後讀取磁碟的次數。 

select @@total_write as w  --返回sql伺服器自啟動後寫入磁碟的次數。 

select @@trancount  as w  --返回當前連線的活動事務數。 

select @@version as w  --返回sql伺服器安裝的日期、版本和處理器型別。                       

三.輸出語句:

語法:①. print 區域性變數或字串

②.select 區域性變數 as 自定義列名 例:

print  '我是輸出的內容'

select @@version as 'sql server的版本' 

四.資料型別轉換:cast()和convert() 函式

1.cast()函式:

語法:cast(表示式 as 資料型別) 例:

cast(@num as int)

2.convert()函式:

語法:convert(資料型別[(長度)],表示式[,樣式]) 例:

convert(nvarchar(10),@name)

3.區別:

sql中的cast 和convert都是用來將一種資料型別的表示式轉換為另一種資料型別的表示式。

cast 和 convert 提供相似的功能,只是語法不同。

在時間轉化中一般用到convert,

因為它比cast多加了乙個style,可以轉化成不同時間的格式。

style:

日期格式樣式,藉以將 datetime 或 smalldatetime 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或

nvarchar 資料型別);或者字串格式樣式,藉以將 float、real、money 或 smallmoney 資料轉換為字元資料(nchar、nvarchar、char、varchar、nchar 或 nvarchar 資料型別)。

五.邏輯控制語句:

1.begin-end 語句:

類似c#語音的'{}',常在分支結構

語句和迴圈結構語句中出現

2.if-else條件語句:

根據條件是否成立來確定程式的執行方向

語法:if(條件)

begin

語句1end

else

begin

語句2end

3.while迴圈語句:

使用while關鍵字,可以確保只要指定的條件為true,就會反覆執行語句,直到直到條件為false為止.

語法:while(條件)

begin 語句

break 或者 continue

end4.case-end多分支語句:

case-end語句計算一組條件表示式,並且返回其中乙個符合條件的結果.

語法:case 

when 條件1 then 結果1

when 條件2 then 結果2  

else  其他結果

endcase語句表示如果''條件1''成立,則執行''結果1'',如果when的條件都不成立,則執行else後的結果.

全域性變數 靜態全域性變數 靜態區域性變數 區域性變數

全域性和靜態變數都在堆裡。這句話應該錯了,應該是放在常量資料段 全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用...

全域性變數 靜態全域性變數 靜態區域性變數 區域性變數

全域性和靜態變數都在堆裡。全域性變數的作用範圍是整個程式 如果程式是多個檔案,必須在其他的檔案中說明 靜態變數的作用範圍要看靜態變數的位置,如果在函式裡,則作用範圍 就是這個函式。靜態全域性變數,只在本檔案可以用,雖然整個程式包含多個檔案,但靜態全域性變數只能用在定義它的那個檔案裡,卻不能用在程式中...

全域性變數 靜態全域性變數區域性變數 靜態區域性變數

對於乙個完整的程式,在記憶體中的分布情況如下圖 區 low address 全域性資料區 堆區 棧區 high address 一般程式把新產生的動態資料存放在堆區,函式內部的自動變數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料 即使是函式內部的靜態區域性變數 也存放在全域性資料區。...