`
isiqi
  • 浏览: 16342961 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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_addserversp_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 语句返回的 textimage 数据的最大长度,以字节为单位。

语法

@@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
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST-->
<!--RELATEDTOPICSLIST--> <!--RELATEDTOPICSLIST--> <!--RELATEDTOPICSLIST-->
分享到:
评论

相关推荐

    SQL Server数据库应用与开发:第04章 Transact-SQL语言基础.ppt

    Transact-SQL语言是SQL Server 2005在SQL语言的基础上增加了一些语言要素后的扩展语言,其语言要素包括注释、变量、运算符、函数和流程控制语句等。掌握Transact-SQL语言是进一步学习更多的管理技术和数据库应用开发...

    Transact-SQL权威指南

    总的来说,《Transact-SQL权威指南》是一本全面的教程,适合数据库管理员、开发人员和数据分析人员阅读,帮助他们掌握SQL Server的核心语言Transact-SQL,提升他们在数据处理和系统优化方面的专业技能。书中的内容...

    Transact-SQL 编程

    --T-SQL语句用于管理SQL Server数据库引擎实例,创建和管理数据库对象, --以及查询、插入、修改和删除数据。 --Ø 变量 --1、局部变量(Local Variable) --局部变量是用户可以自定义的变量,它的作用范围是仅在...

    Transact-SQL数据库编程.ppt

    Transact-SQL,通常简称为T-SQL,是SQL语言的一个扩展,尤其适用于微软的SQL Server数据库管理系统。它不仅包含了标准SQL的查询功能,还添加了诸如变量、流程控制、函数和存储过程等高级特性,为数据库开发提供了更...

    Transact-sql 最常用全局变量

    ### Transact-SQL 最常用的全局变量详解 #### 概述 在 SQL Server 中,全局变量是一种特殊的变量类型,由系统自动维护,无需显式声明,主要用于获取系统内部的状态信息和其他重要参数。这些变量以 `@@` 前缀开始,...

    Transact-SQL手册

    T-SQL语言还提供了许多扩展功能,包括加入程序、流程控制、加入局部变量、系统变量等。这些功能使得开发者可以创建更加复杂和灵活的数据库应用程序。 1.2 标识符 标识符是T-SQL语言中用于命名数据库对象的符号。...

    transact-sql权威指南(pdf)

    1. **Transact-SQL基础**:书中首先会介绍Transact-SQL的基础语法,包括数据类型、变量声明、常量、运算符、流程控制语句(如IF-ELSE、WHILE、BEGIN-END等)以及基本的查询语句(SELECT)。 2. **查询语句(SELECT...

    《SQL Server 数据库》Transact-SQL程序设计实验报告.pdf

    《SQL Server 数据库》Transact-SQL程序设计实验报告主要关注了Transact-SQL语言的基础应用,涵盖了注释、变量、运算符、函数以及流程控制语句的使用。实验的目标是帮助学生掌握这些核心概念,并通过实际操作来提升...

    Transact-SQL语句

    以上内容展示了Transact-SQL的一些基本使用方法,包括变量的声明和赋值、条件判断、循环结构、数据查询和处理等。通过这些基本的语句,我们可以实现复杂的业务逻辑和数据处理任务。掌握这些基础后,开发者可以根据...

    CASE的用法 (Transact-SQL)

    ### CASE的用法 (Transact-SQL) #### 概述 `CASE` 是 Transact-SQL 中一个非常重要的关键字,用于根据不同的条件返回不同的结果。它支持两种主要的格式:简单表达式和搜索表达式。这两种格式都能有效地帮助开发者...

    Transact-SQL语句基础

    利用Transact-SQL语句声明一个长度为16的nchar型变量bookname,并赋初值为”SQL Server 数据库编程”。 运算符的应用,使用teaching数据库 查询生日在’1989-01-01’之后的学生信息; 3)系统函数的应用 编程计算...

    Transact-SQL编程规范

    《Transact-SQL编程规范》概述了在使用T-SQL进行数据库编程时应当遵循的一系列准则,以提高代码的可读性、可维护性和性能。本文由郑佐编写,主要面向IT公司的设计开发人员,提供了关于T-SQL编程的基础原则和具体规范...

    Transact-SQL语言

    Transact-SQL(T-SQL)是SQL Server中使用的扩展SQL方言,主要用于数据库管理和应用程序开发。它是Microsoft SQL Server的核心组成部分,提供了数据定义、数据操纵、数据控制和一系列其他功能。 2.1 数据定义语言...

    Transact - SQL命令介绍

    Transact-SQL(T-SQL)是SQL Server数据库管理系统中的扩展性SQL语言,由Microsoft开发,用于管理、查询、操纵和控制SQL Server数据库。它是SQL标准的一个方言,增加了许多特有的功能,使得开发者能够进行更高级的...

    Transact-SQL开发指南

    在SQL Server和Sybase这两个广泛使用的数据库管理系统中,Transact-SQL是进行数据查询、更新、管理以及实现业务逻辑的核心工具。本文将深入探讨Transact-SQL的基础概念、语法结构及其在实际开发中的应用。 首先,让...

    第八讲:Transact-SQL语言基础.ppt

    在实际应用中,Transact-SQL语言广泛应用于各种数据库管理系统,例如Microsoft SQL Server、Sybase、Oracle等。它可以帮助开发者快速地开发和维护数据库应用程序,提高了开发效率和产品质量。 Transact-SQL语言是...

    Transact-SQL语法速查手册

    Transact-SQL是Microsoft SQL Server数据库管理系统中用于查询和管理数据的语言,它扩展了标准的SQL语法,提供了更丰富的功能。 在Transact-SQL的基础部分,我们首先了解标识符的命名规则。标识符用于命名数据库...

    SQL.Server.2008.Transact-SQL.Recipes

    1. **基础知识**:首先介绍了Transact-SQL的基本语法和概念,包括数据类型、变量、运算符等基础内容。 2. **数据查询**:深入讲解了如何使用SELECT语句来检索数据,并介绍了各种子句的使用方法,例如WHERE、GROUP ...

Global site tag (gtag.js) - Google Analytics