sql server 2005 T-SQL @@OPTIONS (Transact-SQL)
2007-12-20 13:41
447 查看
返回对本地服务器上执行的当前存储过程的嵌套级别(初始值为 0)。有关嵌套级别的信息,请参阅嵌套存储过程。
Transact-SQL 语法约定
语法
返回类型
int
备注
每次一个存储过程通过引用公共语言运行时 (CLR) 例程、类型或聚合来调用另一个存储过程或执行托管代码时,嵌套级别都会增加。超过最大级数 32 时,事务即被终止。
在 Transact-SQL 字符串中执行 @@NESTLEVEL 时,返回的值为 1 + 当前嵌套级别。通过使用 sp_executesql 动态执行 @@NESTLEVEL 时,返回的值为 2 + 当前嵌套级别。
示例
复制代码
下面是结果集:
复制代码
复制代码
下面是结果集:
复制代码
返回有关当前 SET 选项的信息。
Transact-SQL 语法约定
语法
返回类型
integer
备注
可以使用 sp_configure 用户选项配置选项统一修改 SET 选项。每个用户都有一个表示配置的 @@OPTIONS 函数。从第一次登录开始,系统管理员即为所有的用户分配一个默认的配置集。
可以使用 SET 语句更改语言和查询处理选项。
示例
以下示例设置 NOCOUNT ON 并测试 @@OPTIONS 的值。NOCOUNT ON 选项可防止将会话中每一个语句的有关受影响行数的消息发送回请求的客户端。@@OPTIONS 的值设置为 512 (0x0200)。这表示 NOCOUNT 选项。下面的示例测试客户端是否启用了 NOCOUNT 选项。例如,它可以帮助跟踪客户端的性能差异。
复制代码
Transact-SQL 语法约定
语法
@@NESTLEVEL
返回类型
int
备注
每次一个存储过程通过引用公共语言运行时 (CLR) 例程、类型或聚合来调用另一个存储过程或执行托管代码时,嵌套级别都会增加。超过最大级数 32 时,事务即被终止。
在 Transact-SQL 字符串中执行 @@NESTLEVEL 时,返回的值为 1 + 当前嵌套级别。通过使用 sp_executesql 动态执行 @@NESTLEVEL 时,返回的值为 2 + 当前嵌套级别。
示例
A. 在过程中使用 @@NESTLEVEL
以下示例将创建两个过程:一个过程调用另一个过程,一个过程显示每个过程的 @@NESTLEVEL 设置。复制代码
USE AdventureWorks; GO IF OBJECT_ID (N'usp_OuterProc', N'P')IS NOT NULL DROP PROCEDURE usp_OuterProc; GO IF OBJECT_ID (N'usp_InnerProc', N'P')IS NOT NULL DROP PROCEDURE usp_InnerProc; GO CREATE PROCEDURE usp_InnerProc AS SELECT @@NESTLEVEL AS 'Inner Level'; GO CREATE PROCEDURE usp_OuterProc AS SELECT @@NESTLEVEL AS 'Outer Level'; EXEC usp_InnerProc; GO EXECUTE usp_OuterProc; GO
下面是结果集:
复制代码
Outer Level ----------- 1 Inner Level ----------- 2
B. 调用 @@NESTLEVEL
以下示例显示 SELECT、EXEC 和 sp_executesql 调用 @@NESTLEVEL 时,它们返回的值的区别。复制代码
CREATE PROC usp_NestLevelValues AS SELECT @@NESTLEVEL AS 'Current Nest Level'; EXEC ('SELECT @@NESTLEVEL AS OneGreater'); EXEC sp_executesql N'SELECT @@NESTLEVEL as TwoGreater' ; GO EXEC usp_NestLevelValues; GO
下面是结果集:
复制代码
Current Nest Level ------------------ 1 (1 row(s) affected) OneGreater ----------- 2 (1 row(s) affected)
返回有关当前 SET 选项的信息。
Transact-SQL 语法约定
语法
@@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)
相关文章推荐
- sql server 2005 T-SQL @@OPTIONS (Transact-SQL)
- sql server 2005 T-SQL @@OPTIONS (Transact-SQL)
- sql server 2005 T-SQL @@OPTIONS (Transact-SQL)
- SQL Server 2005 Beta 2 Transact-SQL 增强功能
- sql server 2005 T-SQL % (通配符 -- 需匹配的字符)(Transact-SQL)
- sql server 2005 T-SQL --(注释)(Transact-SQL)
- sql server 2005 T-SQL @@CURSOR_ROWS (Transact-SQL)
- sql server 2005 T-SQL @@LANGID (Transact-SQL)
- sql server 2005 T-SQL @@PACKET_ERRORS (Transact-SQL)
- sql server 2005 T-SQL @@TIMETICKS (Transact-SQL)
- sql server 2005 T-SQL ALTER DATABASE (Transact-SQL)
- sql server 2005 T-SQL ALTER MASTER KEY (Transact-SQL)
- sql server 2005 T-SQL ALTER SCHEMA (Transact-SQL)
- sql server 2005 T-SQL ALTER XML SCHEMA COLLECTION (Transact-SQL)
- sql server 2005 T-SQL CKUP MASTER KEY (Transact-SQL)
- sql server 2005 T-SQL binary 和 varbinary (Transact-SQL)
- sql server 2005 T-SQL @@DBTS (Transact-SQL)
- sql server 2005 T-SQL @@LOCK_TIMEOUT (Transact-SQL)
- sql server 2005 T-SQL @@PACK_RECEIVED (Transact-SQL)
- sql server 2005 T-SQL @@TOTAL_ERRORS (Transact-SQL)