SQL SERVER 全域性變數
全域性變數
全域性變數是由伺服器級定義,而不是由使用者的程式定義,並且不能修改。其作用範圍是任何程式均可以隨時呼叫,引用全域性變數時必須以標記符“@@”開頭。在程式中,我們可以通過全域性變數來測試系統的設定值或者是T_SQL命令執行後的狀態值,SQL Server 2012中包含的全域性變數:
1、@@CONNECTION:無論連線是成功還是失敗,都會返回SQL SERVER自上次啟動以來嘗試的連線數;
2、@@CPU_BUSY:返回SQL SERVER自上次啟動後的工作時間,其結果以CPU時間增量或“滴答數”表示,其值為所有cpu時間的累積,因此可能會超出實際佔用的時間,乘以@@TIMETICKS即可轉換為微秒;
3、@@CURSOR_ROWS:返回連線上開啟的上一個遊標中的當前設定行的數目。可以呼叫@@CURSOR_ROWS來確定當此全域性變數被呼叫時檢索了遊標符合條件的行數;
4、@@DATEFIRST:針對回話返回SET DATEFIRST的當前值;
5、@@DBTS:返回當前資料庫的當前timestamp資料型別的值,這一時間戳值在資料庫中必須是唯一的;
6、@@ERROR:返回執行的上一個t_sql語句的錯誤號;
7、@@FETCH_STATUS:返回針對連線當前開啟的任何遊標,發出的上一條遊標FETCH語句的狀態;
8、@@IDENTITY:返回插入到表的IDENTITY列的最後一個值;
9、@@IDLE:返回sql自上次啟動後的空閒時間;
10、@@IO_BUSY:返回sql最近一次啟動以來,已經由於執行輸入和輸出操作的時間;
11、@@LANGID:返回當前使用的語言的本地語言表示服;
12、@@LANGUAGE:返回當前語言所用的名稱;
13、@@LOCK_TIMEOUT:返回當前會話的當前鎖定超時設定(毫秒);
14、@@MAX_CONNECTIONS:返回sql例項允許同時進行的最大使用者連線數,返回的數值不一定是當前配置的數值;
15、@@MAX_PRECISION:按照伺服器中的當前設定,返回decimal和numeric資料型別所用的精度級別,預設最大精度返回38;
16、@@NESTLEVEL:返回對本地伺服器上執行的當前儲存過程的巢狀級別(初始值為0);
17、@@OPTIONS:返回有關當前SET選項的資訊;
18、@@PAK_RECEIVED:返回sql自上次啟動後從網路讀取的輸入資料包數;
19、@@PACK_SENT:返回sql自上次啟動後寫入網路的輸出資料包數;
20、@@PACKET_ERRORS:返回自上次啟動sql後,在sql連線上發生的網路資料包錯誤數;
21、@@ROWCOUNT:返回上一次語句影響的行數;
22、@@PROCID:返回t_sql當前模組的物件表示服(ID),模組可以試儲存過程、使用者定義函式或觸發器,不能再CLR模組或者進出內資料訪問介面中指定@@PROCID;
23、@@SERVERNAME:返回執行sql的本地伺服器的名稱;
24、@@SERVICENAME:返回sql正在其下執行的登錄檔項名稱。若當前例項為預設例項,則返回MSSQLSERVER,若當前例項為命名例項,則返回例項名;
25、@@SPID:返回當前使用者程序的回話ID;
26、@@TEXTSIZE:返回set語句的textsize選項的當前值,它指定select語句返回的text或image資料型別的最大長度,單位為位元組;
27、@@TIMETICKS:返回每個始終週期的微秒數;
28、@@TOTAL_ERRORS:返回自上次啟動sql之後,sql所遇到的磁碟寫入錯誤數;
29、@@TOTAL_READ:返回sql自上次啟動之後,由sql讀取(非快取讀取)的磁碟的數目;
30、@@TOTAL_WRITE:返回自上次啟動sql以來,由sql所執行的磁碟寫入數;
31、@@TRANCOUNT:返回當前連線的活動事務數;
32、VERSION:返回當前安裝的日期、版本和處理器型別;
示例:檢視當前sql server的版本資訊和無武器名稱:
SELECT @@VERSION AS ‘伺服器版本’,@@SERVERNAME AS ‘伺服器名稱’
資料參考自《SQL Server 2012從零開始學》
相關推薦
SQL SERVER 全域性變數
全域性變數 全域性變數是由伺服器級定義,而不是由使用者的程式定義,並且不能修改。其作用範圍是任何程式均可以隨時呼叫,引用全域性變數時必須以標記符“@@”開頭。在程式中,我們可以通過全域性變數來測試系統的設定值或者是T_SQL命令執行後的狀態值,SQL Serv
SQL SERVER 表變數 和 標量變數
表變數不能修改結構另外: 1)表變數是儲存在記憶體中的,當用戶在訪問表變數的時候,SQL Server是不產生日誌的,而在臨時表中是產生日誌的; 2)在表變數中,是不允許有非聚集索引的; 3)表變數是不允許有DEFAULT預設值,也不允許有約束; 4)臨時表上的統計資訊
SQL Server 表變數和臨時表系列之概念篇
問題引入 “菜鳥啊,最近我看到阿里雲開發者論壇的資料庫RDS中有人在提SQL Server表變數和臨時表如何選擇的問題,你去深入探討下這個問題吧,解答解答他們的疑惑吧”,老鳥又開始為菜鳥找活幹了。 “鳥哥啊,關於表變數和臨時表使用選擇的問題啊,向來行業裡爭論不休,我比較
SQL Server 表變數和臨時表的區別
一、表變數 表變數在SQL Server 2000中首次被引入。表變數的具體定義包括列定義,列名,資料型別和約束。而在表變數中可以使用的約束包括主鍵約束,唯一約束,NULL約束和CHECK約束(外來鍵約束不能在表變數中使用)。定義表變數的語句是和正常使用Create T
SQL進階17-變數的宣告/使用(輸出)--全域性變數/會話變數--使用者變數/區域性變數
/*進階17 變數 系統變數: 全域性變數: 會話變數: 自定義變數: 使用者變數: 區域性變數: */ /* #一: 系統變數 #說明: 變數由系統提供,不是使用者定義的,屬於伺服器層面 #使用的語法 #1/檢視所有的系統變數
T-SQL 區域性變數和全域性變數
區域性變數 1 use StudentManageDB 2 go 3 --宣告學號變數 4 declare @stuid int,@stuname varchar(20) 5 6 --查詢李銘的資訊 7 set @stuname='李銘' 8 select StudentId,Stu
SQL server 變數的定義和使用
1.全域性變數 定義:以@@開頭,後面跟相應的字串 如: @@version 檢視全域性變數 SELECT @@version 執行結果: Microsoft SQL Serve
SQL中的區域性變數和全域性變數
在SQL中,我們常常使用臨時表來儲存臨時結果,對於結果是一個集合的情況,這種方法非常實用,但當結果僅僅是一個數據或者是幾個資料時,還要去建一個表,顯得就比較麻煩,另外,當一個SQL語句中的某些元素經常變化時,比如選擇條件,(至少我想)應該使用區域性變數。當然MS
SQL Server儲存過程中top後為變數時的處理
@pageRecordNum為每頁顯示的記錄數,@currentPageNum為當前的頁數 create proc pagination @pageRecordNum int,@currentPageNum int as declare @recNum varchar(
SQL中的全域性變數和區域性變數(@@/@)
在SQL中,我們常常使用臨時表來儲存臨時結果,對於結果是一個集合的情況,這種方法非常實用,但當結果僅僅是一個數據或者是幾個資料時,還要去建一個表,顯得就比較麻煩,另外,當一個SQL語句中的某些元素經常變化時,比如選擇條件,(至少我想)應該使用區域性變數。當然MS S
sql server 儲存過程 宣告變數declare @testValue int,預設值是NULL
在sqlServer儲存過程中,宣告一個變數,但是沒有賦值的情況下,其值預設為NULL 測試程式碼: create PROCEDURE [dbo].[test] AS BEGIN declare @testValue int print '宣告@testValue 並不賦值' if(@t
臨時表和表變數區別,SQL Server裡的檢視和臨時表在哪裡?
臨時表與永久表相似,但臨時表儲存在 tempdb 中,當不再使用時會自動刪除。 臨時表有兩種型別:本地和全域性。它們在名稱、可見性以及可用性上有區別。本地臨時表的名稱以單個數字元號 (#) 打頭;它們僅對當前的使用者連線是可見的;當用戶從 SQL Server 例項斷開連
17、SQL Server:動態SQL拼接字串,使用變數,函式等5
(1)直接字串 如果需要在動態SQL語句中使用空格或者字串必須使用轉義單引號 例如:declare @sql varchar(500) set @sql = 'select xxx
Sql server 使用全域性觸發器限制IP 實現白名單功能
首先新建一個表:WhiteList 欄位 :IP 然後手動插入一條記錄: insert into 資料庫名.dbo.WhiteList(IP) values('<local machine>') --切記一定要加,否則等下觸發器建立後就無法進來了(解決方案在
php-SERVER超全域性變數(陣列)的詳細資訊
1.html --> test.php 'HTTP_HOST' => '127.0.0.1:8080' (length=14) 'HTTP_CONNECTION' => 'keep-alive' (length=10) 'HTTP_UPGRA
sql server left join 變數或常量,與oracle 加號+類似的
sql server left join 變數或常量,與oracle 加號+類似的 public static List<MesGxzyWlptInfo> GetWlptByG
SQL SERVER 拼字串方式 固定表名 遊標變數範例
這裡一定注意這個地方,拼引數的時候,有單引號的問題: set @str='declare mycursor cursor for select id,name from test where sex='''+@sex+'''' declare @col1
SQL SERVER 拼字串方式 動態表名 遊標變數範例
儲存過程1: CREATE PROCEDURE [dbo].[pro_get_cursor] @In_TableName nvarchar(200), @Out_CurrencyCursor CURSOR VARYING OUTPUTAS declare
SQL Server解惑——為什麼ORDER BY改變了變數的字串拼接結果
在SQL Server中可能有這樣的拼接字串需求,需要將查詢出來的一列拼接成字串,如下案例所示,我們需要將AddressID <=10的AddressLine1拼接起來,分隔符為|。如下截圖所示。這種方式看起來似乎沒有什麼問題,而且簡單測試也是OK: USE
SQL Server解惑——查詢條件IN中能否使用變數
在SQL Server的查詢條件中,能否在IN裡面使用變數呢? 如果可以的話,有沒有需要注意的地方或一些限制呢?在回答這個問題前,我們先來看看這個例子: IF EXISTS (SELECT 1 FROM sys.objects WHERE name='TEST' AND t