- 浏览: 97534 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (133)
- jQuery (11)
- XML (3)
- 组件 (1)
- JAVA (20)
- WEB (3)
- SPRING (6)
- HIBERNATE (5)
- AJAX (2)
- JS (1)
- JAVA webservice (1)
- Ditu (1)
- WEBSITE (1)
- HIBERNATE ANNOTATION (1)
- 排序 (1)
- TCP_NODELAY (1)
- ConvertUtils (1)
- Logistics (1)
- SQL SERVER 中identity (4)
- sql server (35)
- MYSQL (1)
- Eclipse (6)
- ORACLE (6)
- FLEX (4)
- notepad++ (0)
- UNION ALL (1)
- JUnit (3)
- SQL 异常处理 (1)
- @@trancount (1)
- IOS (1)
- ORA-02266 (1)
- REMOTE DESKTOP (0)
- HTML 优化 (1)
- CRLF (1)
- SQL Server Sequence (1)
最新评论
-
zjuttsw:
看的舒服
重要的hashcode equals转载
http://blog.163.com/xiao_mege/blog/static/7294275320105105718153/
一、
对 COMMIT TRANSACTION 或 COMMIT WORK 的每个调用都应用于最后执行的 BEGIN TRANSACTION。如果嵌套 BEGIN TRANSACTION 语句,那么 COMMIT 语句只应用于最后一个嵌套的事务,也就是在最内层的事务。即使嵌套事务内部的 COMMIT TRANSACTION transaction_name 语句引用外部事务的事务名,该提交也只应用于最内层的事务。
ROLLBACK TRANSACTION 语句的 transaction_name 参数引用一组命名的嵌套事务的内层事务是非法的,transaction_name 只能引用最外部事务的事务名。如果在一组嵌套事务的任意级别执行使用外部事务名称的 ROLLBACK TRANSACTION transaction_name 语句,那么所有的嵌套事务都将回滚。如果在一组嵌套事务的任意级别执行没有 transaction_name 参数的 ROLLBACK WORK 或 ROLLBACK TRANSACTION 语句,那么它将回滚所有嵌套事务,包括最外部事务。
@@TRANCOUNT 函数记录当前事务的嵌套级。
每个 BEGIN TRANSACTION 语句使 @@TRANCOUNT 加 1。
每个 COMMIT TRANSACTION 或 COMMIT WORK 语句使 @@TRANCOUNT 减 1。
没有事务名的 ROLLBACK WORK 或 ROLLBACK TRANSACTION 语句将回滚所有嵌套事务,并使 @@TRANCOUNT 减小到 0。
使用一组嵌套事务中最外部事务的事务名称的 ROLLBACK TRANSACTION 将回滚所有嵌套事务,并使 @@TRANCOUNT 减到 0。
在无法确定是否已经在事务中时,可以用 SELECT @@TRANCOUNT 语句确定 @@TRANCOUNT 是 1 还是更大。如果 @@TRANCOUNT 是 0,则表明不在事务中。
二、
返回在当前连接上已发生的 BEGIN TRANSACTION 语句的数目。
语法:
@@TRANCOUNT
@@TRANCOUNT - xiao_mege - xiao_mege的博客 返回类型
integer
@@TRANCOUNT - xiao_mege - xiao_mege的博客 注释
BEGIN TRANSACTION 语句将 @@TRANCOUNT 增加 1。ROLLBACK TRANSACTION 将 @@TRANCOUNT 递减到 0,但 ROLLBACK TRANSACTION savepoint_name 除外,它不影响 @@TRANCOUNT。COMMIT TRANSACTION 或 COMMIT WORK 将 @@TRANCOUNT 递减 1。
@@TRANCOUNT - xiao_mege - xiao_mege的博客 示例
A. 演示 BEGIN 和 COMMIT 语句的效果
下面的示例演示嵌套的
BEGIN
和
COMMIT
语句对
@@TRANCOUNT
变量产生的效果。
PRINT @@TRANCOUNT -- The BEGIN TRAN statement will increment the -- transaction count by 1. BEGIN TRAN PRINT @@TRANCOUNT BEGIN TRAN PRINT @@TRANCOUNT -- The COMMIT statement will decrement the transaction count by 1. COMMIT PRINT @@TRANCOUNT COMMIT PRINT @@TRANCOUNT --Results --0 --1 --2 --1 --0
B. 演示 BEGIN 和 ROLLBACK 语句的效果
下面的示例演示嵌套的
BEGIN TRAN
和
ROLLBACK
语句对
@@TRANCOUNT
变量产生的效果。
PRINT @@TRANCOUNT
-- The BEGIN TRAN statement will increment the
-- transaction count by 1.
BEGIN TRAN
PRINT @@TRANCOUNT
BEGIN TRAN
PRINT @@TRANCOUNT
-- The ROLLBACK statement will clear the @@TRANCOUNT variable
-- to 0 because all active transactions will be rolled back.
ROLLBACK
PRINT @@TRANCOUNT
--Results
--0
--1
--2
一、
对 COMMIT TRANSACTION 或 COMMIT WORK 的每个调用都应用于最后执行的 BEGIN TRANSACTION。如果嵌套 BEGIN TRANSACTION 语句,那么 COMMIT 语句只应用于最后一个嵌套的事务,也就是在最内层的事务。即使嵌套事务内部的 COMMIT TRANSACTION transaction_name 语句引用外部事务的事务名,该提交也只应用于最内层的事务。
ROLLBACK TRANSACTION 语句的 transaction_name 参数引用一组命名的嵌套事务的内层事务是非法的,transaction_name 只能引用最外部事务的事务名。如果在一组嵌套事务的任意级别执行使用外部事务名称的 ROLLBACK TRANSACTION transaction_name 语句,那么所有的嵌套事务都将回滚。如果在一组嵌套事务的任意级别执行没有 transaction_name 参数的 ROLLBACK WORK 或 ROLLBACK TRANSACTION 语句,那么它将回滚所有嵌套事务,包括最外部事务。
@@TRANCOUNT 函数记录当前事务的嵌套级。
每个 BEGIN TRANSACTION 语句使 @@TRANCOUNT 加 1。
每个 COMMIT TRANSACTION 或 COMMIT WORK 语句使 @@TRANCOUNT 减 1。
没有事务名的 ROLLBACK WORK 或 ROLLBACK TRANSACTION 语句将回滚所有嵌套事务,并使 @@TRANCOUNT 减小到 0。
使用一组嵌套事务中最外部事务的事务名称的 ROLLBACK TRANSACTION 将回滚所有嵌套事务,并使 @@TRANCOUNT 减到 0。
在无法确定是否已经在事务中时,可以用 SELECT @@TRANCOUNT 语句确定 @@TRANCOUNT 是 1 还是更大。如果 @@TRANCOUNT 是 0,则表明不在事务中。
二、
返回在当前连接上已发生的 BEGIN TRANSACTION 语句的数目。
语法:
@@TRANCOUNT
@@TRANCOUNT - xiao_mege - xiao_mege的博客 返回类型
integer
@@TRANCOUNT - xiao_mege - xiao_mege的博客 注释
BEGIN TRANSACTION 语句将 @@TRANCOUNT 增加 1。ROLLBACK TRANSACTION 将 @@TRANCOUNT 递减到 0,但 ROLLBACK TRANSACTION savepoint_name 除外,它不影响 @@TRANCOUNT。COMMIT TRANSACTION 或 COMMIT WORK 将 @@TRANCOUNT 递减 1。
@@TRANCOUNT - xiao_mege - xiao_mege的博客 示例
A. 演示 BEGIN 和 COMMIT 语句的效果
下面的示例演示嵌套的
BEGIN
和
COMMIT
语句对
@@TRANCOUNT
变量产生的效果。
PRINT @@TRANCOUNT -- The BEGIN TRAN statement will increment the -- transaction count by 1. BEGIN TRAN PRINT @@TRANCOUNT BEGIN TRAN PRINT @@TRANCOUNT -- The COMMIT statement will decrement the transaction count by 1. COMMIT PRINT @@TRANCOUNT COMMIT PRINT @@TRANCOUNT --Results --0 --1 --2 --1 --0
B. 演示 BEGIN 和 ROLLBACK 语句的效果
下面的示例演示嵌套的
BEGIN TRAN
和
ROLLBACK
语句对
@@TRANCOUNT
变量产生的效果。
PRINT @@TRANCOUNT
-- The BEGIN TRAN statement will increment the
-- transaction count by 1.
BEGIN TRAN
PRINT @@TRANCOUNT
BEGIN TRAN
PRINT @@TRANCOUNT
-- The ROLLBACK statement will clear the @@TRANCOUNT variable
-- to 0 because all active transactions will be rolled back.
ROLLBACK
PRINT @@TRANCOUNT
--Results
--0
--1
--2
发表评论
-
WITH (NOLOCK)
2014-09-28 11:56 573http://www.cnblogs.com/henw/arc ... -
SQL Server Profiler使用方法
2014-05-21 16:55 605http://lyt7599.blog.163.com/blo ... -
SQL Server Error Message
2014-05-20 20:20 1290http://www.sql-server-helper.co ... -
SQL锁的概述
2014-05-16 14:39 402http://blog.csdn.net/htl258/art ... -
SET...
2013-12-31 11:16 314http://msdn.microsoft.com/en-us ... -
DATE
2013-12-30 15:23 441http://blog.csdn.net/dba_huangz ... -
DATE AND TIME
2013-12-30 14:22 545SELECT (CAST((SELECT SUBSTRING( ... -
Microsoft SQL Server, Error:9002
2013-09-25 17:48 1026一般在建立一个database之后,就应该手动设置其日志的增长 ... -
SQL 2005 with(nolock)详解
2013-08-26 15:46 576http://hi.baidu.com/gabriel/ite ... -
EXISTS AND NOT EXISTS
2013-07-16 14:51 456EXISTS或者NOT EXISTS是把主查询的字段传到后边的 ... -
is invalid in the select list because it is not contained in either an aggregate
2013-07-11 10:37 933当select 语句块中出现function与常列时,需要在w ... -
A interesting article for printing statement in sql
2013-07-09 11:57 420http://bytes.com/topic/sql-serv ... -
Good net website blog for Database
2013-07-09 11:53 765http://www.bluegecko.net/mysql/ ... -
how to search a function or sto in database
2013-07-08 14:02 674SELECT * FROM sysobjects WHERE ... -
Good SQL WEBSITE 细说Sql Server中的视图(上)(更新)
2013-07-08 11:38 508http://www.cnblogs.com/xbf321/a ... -
SQLServer : EXEC和sp_executesql的区别
2013-07-08 11:36 538http://www.cnblogs.com/xbf321/a ... -
Search for a stored procedure
2013-07-08 11:27 624September 3, 2007 by Pinal Dave ... -
TRUNCATE TABLE
2013-06-27 10:43 467默认情况下,IDENTITY_INSER就是off 这种情况下 ... -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
2013-06-18 14:08 543http://www.cnblogs.com/freshman ... -
安装了SQL以后,编写SQL语句没有提示
2013-06-18 09:55 551安装了SQL以后,编写SQL语句没有提示解决办法: 工具— ...
相关推荐
每当开始一个事务,`@@TRANCOUNT`增加1,每当我们提交或回滚一个事务,`@@TRANCOUNT`减少1。当`@@TRANCOUNT`降回0时,表示没有活动的事务。嵌套事务的提交依赖于最外层的事务,只有最外层事务提交,内部事务才会被...
Contents Overview 1 Lesson 1: Concepts – Locks and Lock Manager 3 Lesson 2: Concepts – Batch and Transaction 31 Lesson 3: Concepts – Locks and Applications 51 Lesson 4: Information Collection and ...
- **@@trancount**: 当前活动事务的数量。 ##### 5. 主逻辑 ```sql -- Example1: 错误处理 select @Error = @@error, @RowCount = @@rowcount if (@Error <> 0) goto error -- Example2: 条件判断 if (@RowCount =...
如果在嵌套事务中,`COMMIT`会使`@@TRANCOUNT`递减1,但不会完全还原到0,直到最外层的事务被提交或回滚。 4. **事务回滚**: `ROLLBACK TRANSACTION`用于撤销事务中的所有更改,将数据库状态回滚到事务开始时的...
这会增加`@@TRANCOUNT`计数器的值,表示当前事务的层级。 - **事务名称**:可选地,可以为事务指定一个名称,便于管理和跟踪。名称限制为32个字符以内,且在嵌套事务中,最外层事务的名称是必需的。 - **事务标记*...
IF @@TRANCOUNT > 0 ROLLBACK TRAN END CATCH IF @@TRANCOUNT > 0 COMMIT TRAN ``` 此外,存储过程`dbo.pr_tran_inproc`展示了如何在存储过程中使用事务处理。它首先关闭返回行计数(`SET NOCOUNT ON`),然后...
`@@TRANCOUNT`返回当前会话中打开的事务数量。这对于确保正确的事务处理和数据一致性至关重要。 #### 15. `@@VERSION` `@@VERSION`返回SQL Server的版本信息。这对于环境配置检查或解决兼容性问题非常有用。 ####...
- **开始事务**:使用`BEGIN TRANSACTION`语句开始一个新的事务,这会增加`@@TRANCOUNT`计数器。 - **事务命名**:可以为事务指定一个名称,方便在多个嵌套事务中跟踪和管理。 - **事务提交**:`COMMIT ...
IF @@TRANCOUNT > 0 ROLLBACK TRAN END CATCH IF @@TRANCOUNT > 0 COMMIT TRAN ``` **知识点说明**: - `BEGIN TRAN` 开始一个新的事务。 - `BEGIN TRY...BEGIN CATCH` 结构用于事务内的错误处理。 - `ROLLBACK ...
@@TRANCOUNT 是一个SQL Server中的系统变量,用于跟踪当前会话中的事务数量。在事务开始时,该值会增加1;当事务结束(提交或回滚)时,该值会减少1。 3. **事务边界** 事务可以显式定义(例如,使用BEGIN ...
IF (@@TRANCOUNT > 0) BEGIN RAISERROR (15002, -1, -1, 'sp_password'); RETURN (1); END; -- RESOLVE LOGIN NAME (disallows NT names) IF NOT EXISTS (SELECT * FROM WHERE loginname = @loginame AND ...
26. `@@TRANCOUNT`:返回当前会话中活跃的事务数,对事务管理至关重要。 通过查询这些全局变量,SQL Server管理员可以有效地监控系统状态、诊断问题和优化性能。例如,检查`@@CPU_BUSY`和`@@IDLE`可以帮助识别CPU...
IF (@@trancount > 0) begin raiserror(15002,-1,-1,'sp_password') return (1) end -- RESOLVE LOGIN NAME (disallows nt names) if not exists (select * from master.dbo.syslogins where loginname = @...
27. **@@TRANCOUNT**:返回当前会话中活动事务的数量,对管理和控制事务流很有帮助。 这些全局变量是SQL Server管理员和开发人员的重要工具,它们提供了丰富的系统状态信息,有助于诊断问题、优化性能和编写更智能...
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION; -- 处理错误信息 END CATCH ``` 在这个例子中,我们使用了BULK INSERT导入CSV文件,并通过指定批处理大小来控制每次导入的数据量。注意,你需要替换'`SourceFilePath....
该文档从sqlserver事务讲起,详述ACID,@@trancount,在嵌套事务中使用保存点,命名事务等
* 验证和确认@@transtate/@@trancount/@@isolation * 验证和确认锁定模式share/exclusive * 验证和确认服务器/所有者命名约定 * 验证和确认重新编译选项 * 验证和确认业务逻辑 * 验证和确认对象依赖关系 * 验证和...
嵌套事务会增加 `@@TRANCOUNT` 的值,而 COMMIT 或 ROLLBACK 命令则会减少该值。 ##### 事务调试语句 - **SET IMPLICIT_TRANSACTIONS ON/OFF**:控制隐式事务的行为。 - **SET XACT_ABORT ON/OFF**:确定是否在发生...
9. **事务处理**:`BEGIN distributed transaction`开始一个事务,`COMMIT TRANSACTION`提交事务,`@@TRANCOUNT`检查当前的事务计数。 10. **字符串连接**:可以使用加号(+)来连接字符串,如`SET @m_sql = @m_sql +...