SQL Server中应该了解的20个系统变量 1、@@CONNECTIONS 返回自上次启动 Microsoft SQL Server以来连接或试图连接的次数。 示例:下面的示例显示了到当前日期和时间为止试图登录的次数。 SELECT GETDATE() AS 'Date and Time', @@CONNECTIONS AS 'Login Attempts' 2、@@CPU_BUSY 返回自上次启动 Microsoft SQL Server以来 CPU 的工作时间,单位为毫秒(基于系统计时器的分辨率)。 示例:下面的示例显示了到当前日期和时间为止 SQL Server CPU 的活动 SELECT @@CPU_BUSY AS 'CPU ms', GETDATE() AS 'As of' 3、@@DATEFIRST 返回 SET DATEFIRST 参数的当前值,SET DATEFIRST 参数指明所规定的每周第一天:1 对应星期一,2 对应星期二,依次类推,用 7 对应星期日。 示例:下面的示例将每周第一天设为 5 (星期五),并假定当日是星期六。

1、@@CONNECTIONS
返回自上次启动 Microsoft SQL Server以来连接或试图连接的次数。
示例:下面的示例显示了到当前日期和时间为止试图登录的次数。
SELECT GETDATE() AS 'Date and Time', @@CONNECTIONS AS 'Login Attempts'

2、@@CPU_BUSY
返回自上次启动 Microsoft SQL Server以来 CPU 的工作时间,单位为毫秒(基于系统计时器的分辨率)。
示例:下面的示例显示了到当前日期和时间为止 SQL Server CPU 的活动
SELECT @@CPU_BUSY AS 'CPU ms', GETDATE() AS 'As of'

3、@@DATEFIRST
返回 SET DATEFIRST 参数的当前值,SET DATEFIRST 参数指明所规定的每周第一天:1 对应星期一,2 对应星期二,依次类推,用 7 对应星期日。
示例:下面的示例将每周第一天设为 5 (星期五),并假定当日是星期六。SELECT 语句返回 DATEFIRST 值和当日是此周的第几天。
SET DATEFIRST 5
SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'

4、@@IO_BUSY
返回 Microsoft SQL Server自上次启动后用于执行输入和输出操作的时间,单位为毫秒(基于系统计时器的分辨率)。
示例:下面的示例显示 SQL Server 自启动到目前已用于执行输入/输出操作的毫秒数。
SELECT @@IO_BUSY AS 'IO ms', GETDATE() AS 'As of'

5、@@LANGID
返回当前所使用语言的本地语言标识符(ID)。
示例:下面的示例将当前会话的语言设置为意大利语 (Italian),然后用 @@LANGID 返回意大利语的 ID。
SET LANGUAGE 'Italian'
SELECT @@LANGID AS 'Language ID'

6、@@LANGUAGE
返回当前使用的语言名。
示例:下面的示例返回当前会话的语言。
SELECT @@LANGUAGE AS 'Language Name'

7、@@MAX_CONNECTIONS
返回 Microsoft SQL Server上允许的同时用户连接的最大数。返回的数不必为当前配置的数值。
示例:下面的示例假定 SQL Server 尚未被重新配置更少的用户连接。
SELECT @@MAX_CONNECTIONS

8、@@PACK_RECEIVED
返回 Microsoft SQL Server自上次启动后从网络上读取的输入数据包数目。
示例
SELECT @@PACK_RECEIVED

9、@@PACK_SENT
返回 Microsoft SQL Server自上次启动后写到网络上的输出数据包数目。
示例
SELECT @@PACK_SENT

10、@@PACKET_ERRORS
返回自 SQL Server 上次启动后,在 Microsoft SQL Server连接上发生的网络数据包错误数。
示例
SELECT @@PACKET_ERRORS

11、@@ROWCOUNT
返回受上一语句影响的行数。
示例:下面的示例执行 UPDATE 语句并用 @@ROWCOUNT 来检测是否有发生更改的行。
UPDATE authors SET au_lname = 'Jones'
WHERE au_id = '999-888-7777'
IF @@ROWCOUNT = 0
   print 'Warning: No rows were updated'

12、@@SERVERNAME
返回运行 Microsoft SQL Server的本地服务器名称。
示例
SELECT @@SERVERNAME

13、@@SERVICENAME
返回 Microsoft SQL Server正在其下运行的注册表键名。若当前实例为默认实例,则 @@SERVICENAME 返回 MSSQLServer;若当前实例是命名实例,则该函数返回实例名。
示例
SELECT @@SERVICENAME

14、@@SPID
返回当前用户进程的服务器进程标识符 (ID)。
示例:下面的示例返回当前用户进程的进程 ID、登录名和用户名。
SELECT @@SPID AS 'ID', SYSTEM_USER AS 'Login Name', USER AS 'User Name'

15、@@TIMETICKS
返回一刻度的微秒数。
示例
SELECT @@TIMETICKS

16、@@TOTAL_ERRORS
返回 Microsoft SQL Server自上次启动后,所遇到的磁盘读/写错误数。
示例:下面的示例显示了 SQL Server 到当前日期和时间为止所遇到的错误数。
SELECT @@TOTAL_ERRORS AS 'Errors', GETDATE() AS 'As of'

17、@@TOTAL_READ
返回 Microsoft SQL Server自上次启动后读取磁盘(不是读取高速缓存)的次数。
示例:下面的示例显示了到当前日期和时间为止的总的磁盘读写次数。
SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'

18、@@TOTAL_WRITE
返回 Microsoft SQL Server自上次启动后写入磁盘的次数。
示例:下面的示例显示了到当前日期和时间为止总的磁盘读写次数。
SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'

19、@@VERSION
返回 Microsoft SQL Server当前安装的日期、版本和处理器类型。
示例:下面的示例返回当前安装的日期、版本和处理器类型。
SELECT @@VERSION

20、@@IDENTITY
返回最后插入的标识值。这个变量很有用,当你插入一行数据时,想同时获得该行的的ID(标示列),就可以用@@IDENTITY
示例:下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。
INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'