标签归档:sql

MySQL replace into 语句浅析(一)

【说明】 本文转载自:http://www.aspku.com/database/mysql/53608.html

这篇文章主要介绍了MySQL replace into 语句浅析(一),本文讲解了replace into的原理、使用方法及使用的场景和使用示例,需要的朋友可以参考下[……]

Read more

继续阅读

发表在 未分类 | 标签为 , | MySQL replace into 语句浅析(一)已关闭评论

SQL Server 2005之嵌套事务学习

SQL Server 2005之嵌套事务学习显 式事务可以嵌套,即在显式事务中开始另一个显式事务是可能的。支持嵌套事务的最重要原因是为了允许在存储过程中使用事务而不必顾及这个事务本身是否是在另 一个事务中被调用的。但是SQL Server是如何处理嵌套事务的?我们可以通过两个简单的示例来探究一下嵌套事务。?       探究嵌套事务1.    启动SQL Server Management Studio并打开一个“新建查询”窗口。2.    通过@@TRANCOUNT来发现SQL Server是如何处理嵌套事务的。键入并执行以下批(此例的代码包含在示例文件NestingTransactions.sql中):PRINT 'Trancount before transaction: ' + CAST(@@trancount as char(1))BEGIN TRAN    PRINT 'After first BEGIN TRAN: ' + CAST(@@trancount as char(1))    BEGIN TRAN        PRINT 'After second BEGIN TRAN: ' + CAST(@@trancount as char(1))    COMMIT TRAN    PRINT 'After first COMMIT TRAN: ' + CAST(@@trancount as char(1))COMMIT TRANPRINT 'After second COMMIT TRAN: ' + CAST(@@trancount as char(1))3.    在结果中,可以看到每一个BEGIN TRAN 语句都会使@@TRANCOUNT增加1并且每一个COMMIT TRAN语句都会使其减少1。如前所述,一个值为0的@@TRANCOUNT意味着没有打开的事务。因此,在@@TRANCOUNT值从1降到0时结束的 事务发生在外层事务提交的时候。因此,每一个内部事务都需要提交。由于事务起始于第一个BEGIN TRAN并结束于最后一个COMMIT TRAN,因此最外层的事务决定了是否完全提交内部的事务。如果最外层的事务没有被提交,其中嵌套的事务也不会被提交。4.    键入并执行以下批来检验事务回滚时所发生的情况:USE AdventureWorksBEGIN TRAN    PRINT 'After 1st BEGIN TRAN: ' + CAST(@@trancount as char(1))    BEGIN TRAN        PRINT 'After 2nd BEGIN TRAN: ' + CAST(@@trancount as char(1))            BEGIN TRAN            PRINT 'After 3rd BEGIN TRAN: ' + CAST(@@trancount as char(1))            UPDATE Person.Contact            SET EmailAddress = 'test@test.at'            WHERE ContactID = 20            COMMIT TRAN        PRINT 'After first COMMIT TRAN: ' + CAST(@@trancount as char(1))ROLLBACK TRANPRINT 'After ROLLBACK TRAN: ' + CAST(@@trancount as char(1))SELECT EmailAddress FROM Person.ContactWHERE ContactID = 20;5.    在这个示例中,联系人的电子邮件地址在一个嵌套事务中被更新,这会被立即提交。然后ROLLBACK TRAN被执行。ROLLBACK TRAN将@@TRANCOUNT减为0并回滚整个事务及其中嵌套的事务,无论它们是否已经被提交。因此,嵌套事务中所做的更新被回滚,数据没有任何改变。始终牢记,在嵌套的事务中,只有最外层的事务决定着是 否提交内部事务。每一个COMMIT TRAN语句总是应用于最后一个执行的BEGIN TRAN。因此,对于每一个BEGIN TRAN,必须调用一个COMMIT TRAN来提交事务。ROLLBACK TRAN语句总是属于最外层的事务,并且因此总是回滚整 个事务而不论其中打开了多少嵌套事务。正因为此,管理嵌套事务很复杂。正如本节最初提到的那样,如果每一个嵌套存储过程都在自身中开始一个事务,那么嵌套 事务大部分会发生在嵌套存储过程中。要避免嵌套事务,可以在过程开始处检查@@TRANCOUNT的值,以此来确定是否需要开始一个事务。如果 @@TRANCOUNT大于0,因为过程已经处于一个事务中并且调用实例可以在错误发生时回滚事务。[……]

Read more

继续阅读

发表在 未分类 | 标签为 | SQL Server 2005之嵌套事务学习已关闭评论

dbcc 大全

dbcc 大全[……]

Read more

继续阅读

发表在 未分类 | 标签为 | dbcc 大全已关闭评论

SQL Server 2005 – Default Trace (默认跟踪)

SQL Server 2005 – Default Trace (默认跟踪)在我们的工作中可能会遇到这样一种情形。由于数据库中某些对象被altered/created/deleted,造成我们的应用程序crash。[……]

Read more

继续阅读

发表在 未分类 | 标签为 | SQL Server 2005 – Default Trace (默认跟踪)已关闭评论

谈谈基于SQL Server 的Exception Handling

谈谈基于SQL Server 的Exception Handling[……]

Read more

继续阅读

发表在 未分类 | 标签为 | 谈谈基于SQL Server 的Exception Handling已关闭评论

SQL Server 2008中SQL增强之一:Values新用途

SQL Server 2008中SQL增强之一:Values新用途[……]

Read more

继续阅读

发表在 未分类 | 标签为 | SQL Server 2008中SQL增强之一:Values新用途已关闭评论

SQL Server 2008中SQL增强之二:Top新用途

SQL Server 2008中SQL增强之二:Top新用途[……]

Read more

继续阅读

发表在 未分类 | 标签为 | SQL Server 2008中SQL增强之二:Top新用途已关闭评论

Be ready to drop your indexed view.

Be ready to drop your indexed view.In all-too-many cases an indexed view may solve your short term performance goals but at some later time become counterproductive. So if you choose to use an indexed view, you may need an exit strategy. Let me describe a few common problems with indexed views.[……]

Read more

继续阅读

发表在 未分类 | 标签为 | Be ready to drop your indexed view.已关闭评论

SQL Server 2008中原生的分层数据类型:hierarchyid

SQL Server 2008中原生的分层数据类型:hierarchyid[……]

Read more

继续阅读

发表在 未分类 | 标签为 | SQL Server 2008中原生的分层数据类型:hierarchyid已关闭评论

监控SQL Server的运行状况(1)

【说明】 本文转载自:http://database.51cto.com/art/201110/296094.htm

监控SQL Server的运行状况(1)[……]

Read more

继续阅读

发表在 未分类 | 标签为 , | 监控SQL Server的运行状况(1)已关闭评论