在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...