Transact-SQL 系統變數
@@CONNECTIONS
返回自上次啟動 Microsoft? SQL Server? 以來連線或試圖連線的次數。
@@CONNECTIONS
返回型別
integer
註釋
連線與使用者不同。例如,應用程式可以開啟多個與 SQL Server 的連線,而不需要使用者監視這些連線。
若要顯示一個包含幾個 SQL Server 統計資訊的報表,包括試圖連線統計資訊,請執行 sp_monitor。
示例
下面的示例顯示了到當前日期和時間為止試圖登入的次數。
SELECT GETDATE() AS 'Today's Date and Time',
@@CONNECTIONS AS 'Login Attempts'
下面是結果集:
Today's Date and Time Login Attempts
--------------------------- ---------------
1998-04-09 14:28:46.940 18
?
@@CPU_BUSY
返回自上次啟動 Microsoft? SQL Server? 以來 CPU 的工作時間,單位為毫秒(基於系統計時器的解析度)。
語法@@CPU_BUSY
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,包括 CPU 活動統計資訊,請執行 sp_monitor。
示例下面的示例顯示了到當前日期和時間為止 SQL Server CPU 的活動。
SELECT @@CPU_BUSY AS 'CPU ms', GETDATE() AS 'As of'
下面是結果集:
CPU ms As of
----------------- ---------------------------
20 1998-04-18 14:43:08.180
??@@CURSOR_ROWS
返回連線上最後開啟的遊標中當前存在的合格行的數量。為提高效能,Microsoft? SQL Server? 可以非同步填充大鍵集和靜態遊標。可呼叫 @@CURSOR_ROWS,以確定當它被呼叫時,符合遊標的行的數目被進行了檢索。
返回值 | 描述 |
---|---|
-m | 遊標被非同步填充。返回值 (-m) 是鍵集中當前的行數。 |
-1 | 遊標為動態。因為動態遊標可反映所有更改,所以符合遊標的行數不斷變化。因而永遠不能確定地說所有符合條件的行均已檢索到。 |
0 | 沒有被開啟的遊標,沒有符合最後開啟的遊標的行,或最後開啟的遊標已被關閉或被釋放。 |
n | 遊標已完全填充。返回值 (n) 是在遊標中的總行數。 |
語法
@@CURSOR_ROWS
返回型別integer
註釋若最後開啟的遊標是非同步開啟的,則 @@CURSOR_ROWS 返回的值是負數。若 sp_configure cursor threshold 的值大於0,則鍵集驅動程式或靜態遊標被非同步開啟,且遊標結果集中的行數大於遊標閾值。
示例下面的示例宣告瞭一個遊標,並且用 SELECT 顯示 @@CURSOR_ROWS 的值。在遊標開啟前,設定值為 0,值 -1 則表示遊標鍵集被非同步填充。
SELECT @@CURSOR_ROWS
DECLARE authors_cursor CURSOR FOR
SELECT au_lname FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor
SELECT @@CURSOR_ROWS
CLOSE authors_cursor
DEALLOCATE authors_cursor
-----------
0
(1 row(s) affected)
au_lname
----------------------------------------
White
(1 row(s) affected)
-----------
-1
(1 row(s) affected)
?
?
@@DATEFIRST
返回 SET DATEFIRST 引數的當前值,SET DATEFIRST 引數指明所規定的每週第一天:1 對應星期一,2 對應星期二,依次類推,用 7 對應星期日。
語法@@DATEFIRST
返回型別tinyint
註釋美國英語中預設 7 對應星期日。
示例下面的示例將每週第一天設為 5 (星期五),並假定當日是星期六。SELECT 語句返回 DATEFIRST 值和當日是此周的第幾天。
SET DATEFIRST 5
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
下面是結果集。從星期五算起,今天(星期六)是第二天。
1st Day Today
---------------- --------------
5 2
???@@DBTS
為當前資料庫返回當前 timestamp 資料型別的值。這一 timestamp 值保證在資料庫中是唯一的。
語法@@DBTS
返回型別varbinary
註釋@@DBTS 返回當前資料庫最後所使用的時間戳值。當帶有 timestamp 列的一行被插入或更新時,會產生一個新的時間戳值。
示例下面的示例從 pubs 資料庫返回當前的 timestamp 值。
USE pubs
SELECT @@DBTS
???@@ERROR
返回最後執行的 Transact-SQL 語句的錯誤程式碼。
語法@@ERROR
返回型別integer
註釋當 Microsoft? SQL Server? 完成 Transact-SQL 語句的執行時,如果語句執行成功,則 @@ERROR 設定為 0。若出現一個錯誤,則返回一條錯誤資訊。@@ERROR 返回此錯誤資訊程式碼,直到另一條 Transact-SQL 語句被執行。您可以在 sysmessages 系統表中檢視與 @@ERROR 錯誤程式碼相關的文字資訊。
由於 @@ERROR 在每一條語句執行後被清除並且重置,應在語句驗證後立即檢查它,或將其儲存到一個區域性變數中以備事後檢視。
示例 A.用 @@ERROR 檢測一個特定錯誤下面的示例用 @@ERROR 在一個 UPDATE 語句中檢測限制檢查衝突(錯誤 #547)。
USE pubsB.用 @@ERROR 有條件地退出一個過程
GO
UPDATE authors SET au_id = '172 32 1176'
WHERE au_id = "172-32-1176"
IF @@ERROR = 547
print "A check constraint violation occurred"
在此示例中,IF...ELSE 語句在儲存過程中的 INSERT 語句後檢測 @@ERROR。@@ERROR 變數的值將決定傳給呼叫程式的返回值,以指示此過程的成功與失敗。
USE pubsC.用 @@ERROR 檢測幾條語句的成功
GO
-- Create the procedure.
CREATE PROCEDURE add_author
@au_id varchar(11),@au_lname varchar(40),
@au_fname varchar(20),@phone char(12),
@address varchar(40) = NULL,@city varchar(20) = NULL,
@state char(2) = NULL,@zip char(5) = NULL,
@contract bit = NULL
AS
-- Execute the INSERT statement.
INSERT INTO authors
(au_id, au_lname, au_fname, phone, address,
city, state, zip, contract) values
(@au_id,@au_lname,@au_fname,@phone,@address,
@city,@state,@zip,@contract)
-- Test the error value.
IF @@ERROR <> 0
BEGIN
-- Return 99 to the calling program to indicate failure.
PRINT "An error occurred loading the new author information"
RETURN(99)
END
ELSE
BEGIN
-- Return 0 to the calling program to indicate success.
PRINT "The new author information has been loaded"
RETURN(0)
END
GO
下面的示例取決於 INSERT 和 DELETE 語句的成功操作。區域性變數在兩條語句後均被設定為 @@ERROR 的值,並且用於此操作的共享錯誤處理例程中。
USE pubsD. 與 @@ROWCOUNT 一同使用 @@ERROR
GO
DECLARE @del_error int, @ins_error int
-- Start a transaction.
BEGIN TRAN
-- Execute the DELETE statement.
DELETE authors
WHERE au_id = '409-56-7088'
-- Set a variable to the error value for
-- the DELETE statement.
SELECT @del_error = @@ERROR
-- Execute the INSERT statement.
INSERT authors
VALUES('409-56-7008', 'Bennet', 'Abraham', '415 658-9932',
'6223 Bateman St.', 'Berkeley', 'CA', '94705', 1)
-- Set a variable to the error value for
-- the INSERT statement.
SELECT @ins_error = @@ERROR
-- Test the error values.
IF @del_error = 0 AND @ins_error = 0
BEGIN
-- Success. Commit the transaction.
PRINT "The author information has been replaced"
COMMIT TRAN
END
ELSE
BEGIN
-- An error occurred. Indicate which operation(s) failed
-- and roll back the transaction.
IF @del_error <> 0
PRINT "An error occurred during execution of the DELETE
statement."
IF @ins_error <> 0
PRINT "An error occurred during execution of the INSERT
statement."
ROLLBACK TRAN
END
GO
下面的示例用 @@ERROR 和 @@ROWCOUNT 驗證一條 UPDATE 語句的操作。為任何可能出現的錯誤而檢驗 @@ERROR 的值,而用 @@ROWCOUNT 保證更新已成功應用於表中的某行。
USE pubs
GO
CREATE PROCEDURE change_publisher
@title_id tid,
@new_pub_id char(4)
AS
-- Declare variables used in error checking.
DECLARE @error_var int, @rowcount_var int
-- Execute the UPDATE statement.
UPDATE titles SET pub_id = @new_pub_id
WHERE title_id = @title_id
-- Save the @@ERROR and @@ROWCOUNT values in local
-- variables before they are cleared.
SELECT @error_var = @@ERROR, @rowcount_var = @@ROWCOUNT
-- Check for errors. If an invalid @new_pub_id was specified
-- the UPDATE statement returns a foreign-key violation error #547.
IF @error_var <> 0
BEGIN
IF @error_var = 547
BEGIN
PRINT "ERROR: Invalid ID specified for new publisher"
RETURN(1)
END
ELSE
BEGIN
PRINT "ERROR: Unhandled error occurred"
RETURN(2)
END
END
-- Check the rowcount. @rowcount_var is set to 0
-- if an invalid @title_id was specified.
IF @rowcount_var = 0
BEGIN
PRINT "Warning: The title_id specified is not valid"
RETURN(1)
END
ELSE
BEGIN
PRINT "The book has been updated with the new publisher"
RETURN(0)
END
GO
@@FETCH_STATUS
返回被 FETCH 語句執行的最後遊標的狀態,而不是任何當前被連線開啟的遊標的狀態。
返回值 | 描述 |
---|---|
0 | FETCH 語句成功。 |
-1 | FETCH 語句失敗或此行不在結果集中。 |
-2 | 被提取的行不存在。 |
語法
@@FETCH_STATUS
返回型別integer
註釋由於 @@FETCH_STATUS 對於在一個連線上的所有遊標是全域性性的,要小心使用 @@FETCH_STATUS 。在執行一條 FETCH 語句後,必須在對另一遊標執行另一 FETCH 語句前測試 @@FETCH_STATUS 。在任何提取操作出現在此連線上前,@@FETCH_STATUS 的值沒有定義。
例如,使用者從一個遊標執行一條 FETCH 語句,然後呼叫一個儲存過程,此儲存過程開啟並處理另一個遊標的結果。當控制從被呼叫的儲存過程返回後,@@FETCH_STATUS 反映的是在儲存過程中執行的最後的 FETCH 語句的結果,而不是在儲存過程被呼叫之前的 FETCH 語句的結果。
示例下面的示例用 @@FETCH_STATUS 控制在一個 WHILE 迴圈中的遊標活動。
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor
@@IDENTITY
返回最後插入的標識值。
語法@@IDENTITY
返回型別numeric
註釋在一條 INSERT、SELECT INTO 或大容量複製語句完成後,@@IDENTITY 中包含此語句產生的最後的標識值。若此語句沒有影響任何有標識列的表,則 @@IDENTITY 返回 NULL。若插入了多個行,則會產生多個標識值,@@IDENTITY 返回最後產生的標識值。如果此語句激發一個或多個執行產生標識值的插入操作的觸發器,則語句執行後立即呼叫 @@IDENTITY 將返回由觸發器產生的最後的標識值。若 INSERT 或 SELECT INTO 語句失敗或大容量複製失敗,或事務被回滾,則 @@IDENTITY 值不會還原為以前的設定。
在返回插入到表的 @@IDENTITY 列的最後一個值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函式類似。
@@IDENTITY 和 SCOPE_IDENTITY 將返回在當前會話的所有表中生成的最後一個標識值。但是,SCOPE_IDENTITY 只在當前作用域內返回值,而 @@IDENTITY 不限於特定的作用域。
IDENT_CURRENT 不受作用域和會話的限制,而受限於指定的表。IDENT_CURRENT 返回任何會話和任何作用域中為特定表生成的標識值。有關更多資訊,請參見 IDENT_CURRENT。
示例下面的示例向帶有標識列的表中插入一行,並用 @@IDENTITY 顯示在新行中使用的標識值。
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'
@@IDLE
返回 Microsoft? SQL Server? 自上次啟動後閒置的時間,單位為毫秒(基於系統計時器的解析度)。
語法@@IDLE
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,可執行 sp_monitor。
示例下面的示例顯示 SQL Server 自啟動到當前時間閒置的毫秒數。
SELECT @@IDLE AS 'Idle ms', GETDATE() AS 'As of'
下面是結果集:
Idle Ms As of
----------------- ---------------------------
277593 1998-04-18 16:41:07.160
@@IO_BUSY
返回 Microsoft? SQL Server? 自上次啟動後用於執行輸入和輸出操作的時間,單位為毫秒(基於系統計時器的解析度)。
語法@@IO_BUSY
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,可執行 sp_monitor。
示例下面的示例顯示 SQL Server 自啟動到目前已用於執行輸入/輸出操作的毫秒數。
SELECT @@IO_BUSY AS 'IO ms', GETDATE() AS 'As of'
下面是結果集:
IO ms As of
------------------ -----------------------------
31 1998-04-18 16:49:49.650
@@LANGID
返回當前所使用語言的本地語言識別符號(ID)。
語法@@LANGID
返回型別smallint
註釋若要檢視語言設定資訊(包括語言 ID 號),可不帶引數執行 sp_helplanguage。
示例下面的示例將當前會話的語言設定為義大利語 (Italian),然後用 @@LANGID 返回義大利語的 ID。
SET LANGUAGE 'Italian'
SELECT @@LANGID AS 'Language ID'
下面是結果集:
Language ID
--------------------
6
@@LANGUAGE
返回當前使用的語言名。
語法@@LANGUAGE
返回型別nvarchar
註釋若要檢視語言設定資訊(包括合法的官方語言名),可不帶引數執行 sp_helplanguage。
示例下面的示例返回當前會話的語言。
SELECT @@LANGUAGE AS 'Language Name'
下面是結果集:
Language Name
-----------------------------
us_english
@@LOCK_TIMEOUT
返回當前會話的當前鎖超時設定,單位為毫秒。
語法@@LOCK_TIMEOUT
返回型別integer
註釋SET LOCK_TIMEOUT 允許應用程式設定語句等待阻塞資源的最長時間。當一條語句已等待超過 LOCK_TIMEOUT所設定的時間,則被鎖住的語句將自動取消,並給應用程式返回一條錯誤資訊。
在一個連線的開始,@@LOCK_TIMEOUT 返回一個 –1值。
示例下面的示例顯示當一個 LOCK_TIMEOUT 值未被設定時的結果集。
SELECT @@LOCK_TIMEOUT
下面是結果集:
----------------
-1
下面的示例設定 LOCK_TIMEOUT 為 1800 毫秒,然後呼叫 @@LOCK_TIMEOUT。
SET LOCK_TIMEOUT 1800
SELECT @@LOCK_TIMEOUT
下面是結果集:
------------------------------
1800
@@MAX_CONNECTIONS
返回 Microsoft? SQL Server? 上允許的同時使用者連線的最大數。返回的數不必為當前配置的數值。
語法@@MAX_CONNECTIONS
返回型別integer
註釋實際允許的使用者連線數也依賴於所安裝 SQL Server 的版本以及應用程式和硬體的限制。
若要將 SQL Server 重新配置為更少的連線,應使用 sp_configure。
示例下面的示例假定 SQL Server 尚未被重新配置更少的使用者連線。
SELECT @@MAX_CONNECTIONS
下面是結果集:
------------------
32767
@@MAX_PRECISION
返回 decimal 和 numeric 資料型別所用的精度級別,即該伺服器中當前設定的精度。
語法@@MAX_PRECISION
返回型別tinyint
註釋預設情況下,最大精度返回 38。
示例SELECT @@MAX_PRECISION
@@NESTLEVEL
返回當前儲存過程執行的巢狀層次(初始值為 0)。
語法@@NESTLEVEL
返回型別integer
註釋每當一個儲存過程呼叫另一個儲存過程時,巢狀層次即進行遞增。超過最大層數 32 時,事務即被終止。
示例下面的示例建立兩個過程:其中一個過程呼叫另一個過程,每個過程都顯示自身的 @@NESTLEVEL 設定值。
CREATE PROCEDURE innerproc as
select @@NESTLEVEL AS 'Inner Level'
GO
CREATE PROCEDURE outerproc as
select @@NESTLEVEL AS 'Outer Level'
EXEC innerproc
GO
EXECUTE outerproc
GO下面是結果集:
Outer Level
-----------------
1
Inner Level
-----------------
2
@@OPTIONS
返回當前 SET 選項的資訊。
語法@@OPTIONS
返回型別integer
註釋可以用"sp_configure 使用者選項"配置選項統一修改 SET 選項。每個使用者有一個 @@OPTIONS 函式代表其配置環境。從第一次登入開始,系統管理員即為所有的使用者分配一個預設的配置設定。
可以用 SET 語句更改語言和查詢處理選項。
示例下面的示例設定 NOCOUNT ON 選項,然後檢測 @@OPTIONS 的值。NOCOUNT ON 選項可防止將會話中每一條語句所影響的行數訊息發回給請求的客戶機。@@OPTIONS 的值被設定為 512 (0x0200),代表 NOCOUNT 選項。下面的示例檢測客戶端是否啟用了 NOCOUNT 選項。例如,它有助於跟蹤客戶端的效能差異。
SET NOCOUNT ON
IF @@OPTIONS & 512 > 0
RAISERROR ('Current user has SET NOCOUNT turned on.',1,1)
@@PACK_RECEIVED
返回 Microsoft? SQL Server? 自上次啟動後從網路上讀取的輸入資料包數目。
語法@@PACK_RECEIVED
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,其中包括髮送和接收資料包的資訊,可執行 sp_monitor。
示例SELECT @@PACK_RECEIVED
@@PACK_SENT
返回 Microsoft? SQL Server? 自上次啟動後寫到網路上的輸出資料包數目。
語法@@PACK_SENT
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,其中包括髮送和接收資料包的資訊,可執行 sp_monitor。
示例SELECT @@PACK_SENT
@@PACKET_ERRORS
返回自 SQL Server 上次啟動後,在 Microsoft? SQL Server? 連線上發生的網路資料包錯誤數。
語法@@PACKET_ERRORS
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,包括資料包錯誤,可執行 sp_monitor。
示例SELECT @@PACKET_ERRORS
@@PROCID
返回當前過程的儲存過程識別符號 (ID) 。
語法@@PROCID
返回型別integer
示例下面的示例建立了一個過程,在此過程內用 SELECT 顯示 @@PROCID 設定。
CREATE PROCEDURE testprocedure AS
SELECT @@PROCID AS 'ProcID'
GO
EXEC testprocedure
GO
@@REMSERVER
當遠端 Microsoft? SQL Server? 資料庫伺服器在登入記錄中出現時,返回它的名稱。
語法@@REMSERVER
返回型別nvarchar(256)
註釋@@REMSERVER 使儲存過程可以檢視它在其上執行的資料庫伺服器名。
示例下面的示例建立一個過程,名為 check_server,它返回遠端伺服器名。
CREATE PROCEDURE check_server
AS
SELECT @@REMSERVER
儲存過程建立在本地伺服器 SEATTLE1 上。使用者登入到遠端伺服器 LONDON2 上,然後執行 check_server。
exec SEATTLE1...check_server
下面是結果集:
---------------
LONDON2
@@ROWCOUNT
返回受上一語句影響的行數。
語法@@ROWCOUNT
返回型別integer
註釋任何不返回行的語句將這一變數設定為 0 ,如 IF 語句。
示例下面的示例執行 UPDATE 語句並用 @@ROWCOUNT 來檢測是否有發生更改的行。
UPDATE authors SET au_lname = 'Jones'
WHERE au_id = '999-888-7777'
IF @@ROWCOUNT = 0
print 'Warning: No rows were updated'
@@SERVERNAME
返回執行 Microsoft? SQL Server? 的本地伺服器名稱。
語法@@SERVERNAME
返回型別nvarchar
註釋SQL Server 安裝程式在安裝時將伺服器名設定為計算機名。可通過使用 sp_addserver 然後重新啟動 SQL Server 來更改 @@SERVERNAME。不過,通常不需要這種方法。
當安裝有多個 SQL Server 例項時,如果本地伺服器名自安裝後未發生更改,則 @@SERVERNAME 返回以下本地伺服器名資訊。
例項 | 伺服器資訊 |
---|---|
預設例項 | '伺服器名' |
命名例項 | '伺服器名\例項名' |
虛擬伺服器 - 預設例項 | '虛擬伺服器名' |
虛擬伺服器 - 命名例項 | '虛擬伺服器名\例項名' |
儘管 @@SERVERNAME 函式和 SERVERPROPERTY 函式的 SERVERNAME 屬性可能返回相似格式的字串,但資訊會有所不同。SERVERNAME 屬性會自動報告計算機網路名的更改。
相比之下,@@SERVERNAME 不報告此更改。@@SERVERNAME 報告使用 sp_addserver 或 sp_dropserver 儲存過程對本地伺服器名所做的更改。
示例SELECT @@SERVERNAME
@@SERVICENAME
返回 Microsoft? SQL Server? 正在其下執行的登錄檔鍵名。若當前例項為預設例項,則 @@SERVICENAME 返回 MSSQLServer;若當前例項是命名例項,則該函式返回例項名。
語法@@SERVICENAME
返回型別nvarchar
註釋SQL Server 作為名為 MSSQLServer 的服務在 Microsoft Windows NT? 上執行。它不在 Windows? 95/98 上作為服務執行,因為該作業系統不支援服務。
示例SELECT @@SERVICENAME
下面是結果集:
------------------------------
MSSQLServer
@@SPID
返回當前使用者程式的伺服器程式識別符號 (ID)。
語法@@SPID
返回型別smallint
註釋@@SPID 可以在 sp_who 輸出結果中標識當前使用者程式。
示例下面的示例返回當前使用者程式的程式 ID、登入名和使用者名稱。
SELECT @@SPID AS 'ID', SYSTEM_USER AS 'Login Name', USER AS 'User Name'
下面是結果集:
ID Login Name User Name
----- ------------- -----------
11 sa dbo
@@TEXTSIZE
返回 SET 語句 TEXTSIZE 選項的當前值,它指定 SELECT 語句返回的 text 或 image 資料的最大長度,以位元組為單位。
語法@@TEXTSIZE
返回型別integer
註釋預設大小是 4096 位元組。
示例下面的示例用 SELECT 語句顯示用 SET TEXTSIZE 語句改變前後的 @@TEXTSIZE 值。
SELECT @@TEXTSIZE
SET TEXTSIZE 2048
SELECT @@TEXTSIZE
下面是結果集:
------------------------
64512
------------------------
2048
@@TIMETICKS
返回一刻度的微秒數。
語法@@TIMETICKS
返回型別integer
註釋每一刻度的時間量依賴於計算機。作業系統的一刻度是 31.25 毫秒,或是三十分之一秒。
示例SELECT @@TIMETICKS
@@TOTAL_ERRORS
返回 Microsoft? SQL Server? 自上次啟動後,所遇到的磁碟讀/寫錯誤數。
語法@@TOTAL_ERRORS
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,包括錯誤總數資訊,可執行 sp_monitor。
示例下面的示例顯示了 SQL Server 到當前日期和時間為止所遇到的錯誤數。
SELECT @@TOTAL_ERRORS AS 'Errors', GETDATE() AS 'As of'
下面是結果集:
Errors As of
------- -------------------------------
0 1998-04-21 22:07:30.013
@@TOTAL_READ
返回 Microsoft? SQL Server? 自上次啟動後讀取磁碟(不是讀取快取記憶體)的次數。
語法@@TOTAL_READ
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,包括讀寫活動資訊,可執行 sp_monitor。
示例下面的示例顯示了到當前日期和時間為止的總的磁碟讀寫次數。
SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'
下面是結果集:
Reads Writes As of
--------- ----------- ------------------------------
978 124 1998-04-21 22:14:22.37
@@TOTAL_WRITE
返回 Microsoft? SQL Server? 自上次啟動後寫入磁碟的次數。
語法@@TOTAL_WRITE
返回型別integer
註釋若要顯示包含幾個 SQL Server 統計資訊的報表,包括讀寫活動資訊,可執行 sp_monitor。
示例下面的示例顯示了到當前日期和時間為止總的磁碟讀寫次數。
SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'
下面是結果集:
Reads Writes As of
--------- ----------- ------------------------------
978 124 1998-04-21 22:14:22.37
@@TRANCOUNT
返回當前連線的活動事務數。
語法@@TRANCOUNT
返回型別integer
註釋BEGIN TRANSACTION 語句使 @@TRANCOUNT 遞增 1。ROLLBACK TRANSACTION 將 @@TRANCOUNT 遞減為 0,但 ROLLBACK TRANSACTION savepoint_name 語句並不影響 @@TRANCOUNT 值。COMMIT TRANSACTION 或 COMMIT WORK 將 @@TRANCOUNT 遞減 1。
示例下面的示例用 @@TRANCOUNT 測試應該提交的開啟事務。
BEGIN TRANSACTION
UPDATE authors SET au_lname = upper(au_lname)
WHERE au_lname = 'White'
IF @@ROWCOUNT = 2
COMMIT TRAN
IF @@TRANCOUNT > 0
BEGIN
PRINT 'A transaction needs to be rolled back'
ROLLBACK TRAN
END
@@VERSION
返回 Microsoft? SQL Server? 當前安裝的日期、版本和處理器型別。
語法@@VERSION
返回型別nvarchar
註釋@@VERSION 返回的資訊與 xp_msver 儲存過程返回的產品名、版本、平臺和檔案資料相似,但 xp_msver 儲存過程提供更詳細的資訊。
示例下面的示例返回當前安裝的日期、版本和處理器型別。
SELECT @@VERSION
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-609098/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Sql Server系列:Transact-SQL變數SQLServer變數
- SAP系統常用變數變數
- SHELL的系統變數變數
- MySQL 5.6所有系統變數(系統引數)MySql變數
- Transact-SQL處理小數SQL
- 變數的分類(臨時(本地)變數、環境變數、全域性變數和系統變數)變數
- destoon 系統常量與變數變數
- MySQL 持久化系統變數MySql持久化變數
- Transact-SQL 示例 - 如何在拼接的動態sql內呼叫外部變數SQL變數
- linux系統環境變數Linux變數
- MySQL 8.0 5.1.6.2 動態系統變數MySql變數
- JavaScript神一樣的變數系統JavaScript變數
- win10 系統變數遷移Win10變數
- ThinkPHP 3.2 系統預設變數/常量PHP變數
- shell全域性(系統)環境變數變數
- win10 pro如何設定系統變數_win10 pro怎麼設定系統變數Win10變數
- 【學生資訊管理系統】物件變數或者With塊變數未設定物件變數
- ubuntu-設定系統環境變數Ubuntu變數
- linux伺服器修改系統變數Linux伺服器變數
- Docker筆記五之Docker系統變數Docker筆記變數
- linux系統設定環境變數Linux變數
- MySQL優化之系統變數優化MySql優化變數
- windows10系統下誤刪系統變數path怎麼辦Windows變數
- C++系統相關操作2 - 獲取系統環境變數C++變數
- OceanBase學習之路51|常用的系統配置引數及系統變數有哪些?變數
- MySQL 的啟動選項和系統變數MySql變數
- 系統預設環境變數PATH設定變數
- Mac OS X 系統的環境變數配置Mac變數
- OLTP系統中儘量使用繫結變數變數
- linux執行緒-sysconf系統變數Linux執行緒變數
- 十二、變數作用域:區域性變數、全域性變數,函式版名片管理系統—新增函式文件變數函式
- RAISERROR (Transact-SQL)AIErrorSQL
- win10系統新增環境變數的方法Win10變數
- linux系統安裝jdk,配置環境變數LinuxJDK變數
- Linux:修改系統 php 預設環境變數LinuxPHP變數
- window系統jdk安裝與環境變數配置JDK變數
- MySQL最佳化之系統變數最佳化MySql變數
- 最佳化ySQL系統變數詳細介紹SQL變數