在SQL Server中的全域性變數

2022-04-12 12:06:24 字數 3600 閱讀 6717

在sql server中,全域性變數是一種特殊型別的變數,伺服器將維護這些變數的值。全域性變數以@@字首開頭,不必進行宣告,它們屬於系統定義的函式,自己沒有辦法定義全域性變數,如果有需要,可以用變通的方法,如把你的表看做全域性變數。

sql server 7.0 以前的版本全域性變數是由系統提供且預先宣告的變數,通過在名稱前保留兩個   (@@)   符號區別於區域性變數。sql server 7.0及其以後版本 transact-sql 全域性變數為函式形式,現在作為函式引用。

下面就是sql server中一些常用的全域性變數。

select @@error     --返回最後執行的 transact-sql 語句的錯誤**(integer)

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

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

select @@error    --返回最後執行的 transact-sql 語句的錯誤**

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伺服器安裝的日期、版本和處理器型別。

select @@remserver as w : 返回登入記錄中記載的遠端sql server伺服器的名稱。

select @@cursor_rows as w: 返回最後連線上並開啟的游標中當前存在的合格行的數量。

select @@procid   as w : 返回當前儲存過程的id值。

select @@servicename as w : 返回sql server正執行於哪種服務狀態之下:如 ms sqlserver、msdtc、sqlserveragent。

select @@spid   as w : 返回當前使用者處理的伺服器處理id值。

select @@textsize   as w: 返回set語句的textsize選項值set語句定義了select語句中text或image。資料型別的最大長度基本單位為位元組。

select @@rowcount as w : 返回受上一語句影響的行數,任何不返回行的語句將這一變數設定為0。

select @@datefirst   as w : 返回使用set datefirst命令而被賦值的datafirst引數值。set datefirst命令用來指定每週的第一天是星期幾。

select @@fetch_status as w: 返回上一次fetch語句的狀態值。

select @@nestlevel   as w : 返回當前執行的儲存過程的巢狀級數,初始值為0。

select @@io_busy   as w : 返回自sql server最後一次啟動以來cpu執行輸入輸出操作所花費的時間(毫秒)。

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

setdatefirst5

select@@datefirstas'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

vue 全域性變數的設定與在元件中修改全域性變數

1.新建乙個js檔案 我這裡新建的為defined.js 如下 我新增了兩個全域性變數 access token refresh token set方法是在元件中修改全域性變數時需要的 然後在vue專案的main.js中匯入defined.js檔案 然後將物件新增到vue原型鏈上,這樣就可以在元件中...

SQLServer中的全域性變數

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

SQL server 中全域性 系統變數總結

rowcount 上句sql 語句所受影響的行數。create table a id int primary key identity 1,1 name varchar 50 age int insert into a values 小明 18 select rowcount fetch statu...