一.區域性變數:
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 一般程式把新產生的動態資料存放在堆區,函式內部的自動變數存放在棧區。自動變數一般會隨著函式的退出而釋放空間,靜態資料 即使是函式內部的靜態區域性變數 也存放在全域性資料區。...