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 pubs

GO

UPDATE authors SET au_id = '172 32 1176'

WHERE au_id = "172-32-1176"



IF @@ERROR = 547

  print "A check constraint violation occurred"


B.用 @@ERROR 有條件地退出一個過程

在此示例中,IF...ELSE 語句在存儲過程中的 INSERT 語句後檢測 @@ERROR。@@ERROR 變量的值將決定傳給調用程序的返回值,以指示此過程的成功與失敗。

USE pubs

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


C.用 @@ERROR 檢測幾條語句的成功

下面的示例取決於 INSERT 和 DELETE 語句的成功操作。局部變量在兩條語句後均被設置爲 @@ERROR 的值,並且用於此操作的共享錯誤處理例程中。

USE pubs

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


D. 與 @@ROWCOUNT 一同使用 @@ERROR

下面的示例用 @@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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章