SQL Server中常用全域性變數介紹

2021-06-11 18:01:52 字數 3816 閱讀 8470

在sql server中,全域性變數是一種特殊型別的變數,伺服器將維護這些變數的值。全域性變數以@@字首開頭,不必進行宣告,它們屬於系統定義的函式。下表就是sql server中一些常用的全域性變數。

【it專家網獨家】在sql server中,全域性變數是一種特殊型別的變數,伺服器將維護這些變數的值。全域性變數以@@字首開頭,不必進行宣告,它們屬於系統定義的函式。下表就是sql server中一些常用的全域性變數。   

全域性變數名稱

描述

@@connections 返回

sql server

自上次啟動以來嘗試的連線數。

@@cpu_busy 返回

sql server

自上次啟動後的工作時間。

@@cursor_rows

返回連線上開啟的上乙個游標中的當前限定行的數目,

確定當其被呼叫時檢索了游標符合條件的行數。

@@datefirst

針對會話返回

set datefirst

的當前值,

set datefirst

表示指定的

每週的第一天。

@@dbts

返回當前資料庫的當前

timestamp

資料型別的值,

這一時間戳值在資料庫中必須是唯一的。

@@error

返回執行的上乙個

transact-sql

語句的錯誤號,

如果前乙個

transact-sql

語句執行沒有錯誤,則返回0。

@@fetch_status

返回針對連線當前開啟的任何游標發出的上一條游標

fetch

語句的狀態。

@@identity

返回上次插入的標識值。

@@idle 返回

sql server

自上次啟動後的空閒時間。結果以

cpu

時間 增量或「時鐘週期」表示,並且是所有

cpu

的累積。

@@io_busy

返回自從

sql server

最近一次啟動以來,

microsoft sql server

已經用於執行輸入和輸出操作的時間。其結果是

cpu

時間增量

(時鐘週期),並且是所有

cpu

的累積值

@@langid

返回當前使用的語言的本地語言識別符號

(id)。

@@language

返回當前所用語言的名稱。

@@lock_timeout:

返回當前會話的當前鎖定超時設定(毫秒)。

@@max_connections 返回

sql server

例項允許同時進行的最大使用者連線數。

返回的數值不一定是當前配置的數值。

@@max_precision

按照伺服器中的當前設定,返回

decimal

和numeric

資料型別

所用的精度級別。

@@nestlevel

返回對本地伺服器上執行的當前儲存過程的巢狀級別(初始值為0)。

@@options

返回有關當前

set

選項的資訊。

@@pack_received 返回

sql server

自上次啟動後從網路讀取的輸入資料報數。

@@pack_sent 返回

sql server

自上次啟動後寫入網路的輸出資料報個數。

@@packet_errors

返回自上次啟動

sql server

後,在sql server

連線上發生的網路

資料報錯誤數。

@@procid 返回

transact-sql

當前模組的物件識別符號

(id)

。transact-sql

模組可以是儲存過程、使用者定義函式或觸發器。

@@remserver

返回遠端

sql server

資料庫伺服器在登入記錄中顯示的名稱。

@@rowcount

返回受上一語句影響的行數。

@@servername

返回執行

sql server

的本地伺服器的名稱。

@@servicename 返回

sql server

正在其下執行的登錄檔項的名稱。若當前例項為

預設例項,則

@@servicename

返回mssqlserver。

@@spid

返回當前使用者程序的會話id。

@@textsize 返回

set

語句中的

textsize

選項的當前值。

@@timeticks

返回每個時鐘週期的微秒數。

@@total_errors 返回

sql server

自上次啟動之後所遇到的磁碟寫入錯誤數。

@@total_read 返回

sql server

自上次啟動後讀取磁碟(不是讀取快取記憶體)的次數。

@@total_write 返回

sql server

自上次啟動以來所執行的磁碟寫入次數。

@@trancount

返回當前連線的活動事務數。

@@version

返回當前的

sql server

安裝的版本、處理器體系結構、生成日期

和作業系統。

@@datefirst:看下面示例執行的結果:

set datefirst 5

select @@datefirst as ' firstday ', datepart(dw, getdate()) as 'today'

上面意思為設每一天的星期五為第一天,那麼今天是星期日,執行的結果如下:

firstday today

5 3@@error:在使用的頻度特別高,特別在一些儲存過程的使用中,如我們在每更新乙個操作都想對其異常進行判斷和檢測,這時候我產會根據@@error的值進行判斷,如: 

if @@error <> 0 

begin

--在此丟擲錯誤的異常

--退出儲存過程

end

@@identity:在一條 insert、select into 或大容量複製語句完成後,@@identity 中包含語句生成的最後乙個標識值。如果語句未影響任何包含標識列的表,則 @@identity 返回 null。如果插入了多個行,生成了多個標識值,則 @@identity 將返回最後生成的標識值。如果語句觸發了乙個或多個觸發器,該觸發器又執行了生成標識值的插入操作,那麼,在語句執行後立即呼叫 @@identity 將返回觸發器生成的最後乙個標識值。如果對包含標識列的表執行插入操作後觸發了觸發器,並且觸發器對另乙個沒有標識列的表執行了插入操作,則 @@identity 將返回第一次插入的標識值。出現 insert 或 select into 語句失敗或大容量複製失敗,或者事務被回滾的情況時,@@identity 值不會恢復為以前的設定。

--資料庫操作影響的行數

if @@ rowcount >0

begin

--插入成功

end

sqlserver中常用的全域性變數

變數 transact sql語言中有兩種形式的變數,一種是使用者自己定義的區域性變數,另外一種是系統提供的全域性變數。區域性變數 區域性變數是乙個能夠擁有特定資料型別的物件,它的作用範圍僅限制在程式內部。區域性變數可以作為計數器來計算迴圈執行的次數,或是控制迴圈執行的次數。另外,利用區域性變數還可...

SQLServer中常用的分頁查詢語句

具體的業務邏輯是這樣的,我資料庫中有100條資料,我要查第40 50資料,表中有兩個字段,乙個欄位是id,乙個欄位是name,其中id是不連續的,因為我刪除id為44 45的記錄,因為我要查資料的第40 50條記錄,也就是id分別為41 42 43 46 47 52的十條記錄。那該怎麼辦吶?下面就是...

SQL Server管理中常用的SQL語句

1 檢視資料庫的版本 select version 2 檢視資料庫所在機器作業系統引數 exec master.xp msver 3 檢視資料庫啟動的引數 sp configure 4 檢視資料庫啟動時間 select convert varchar 30 login time,120 from m...