MYSQL编程:Sqlserver2000中的事件处置
与数据库相关的流程的逐渐标准化,使得解决方案提供商能以更便捷的方式提供服务、部署应用程序、规划容量和管理资源。DBaaS模式还有助于减少数据和数据库的冗余度并提升整体服务质量。server|sqlserver|事件处置Sqlserver2000中的事件处置1、界说及其性子:事件:事件是作为单个逻辑事情单位实行的一系列操纵。属性:一个逻辑事情单位必需有四个属性,称为ACID(原子性、分歧性、断绝性和耐久性)属性,只要如许才干成为一个事件:1.原子性:事件必需是原子事情单位;关于其数据修正,要末全都实行,要末全都不实行。2.分歧性:事件在完成时,必需使一切的数据都坚持分歧形态。在相干数据库中,一切划定规矩都必需使用于事件的修正,以坚持一切数据的完全性。事件停止时,一切的外部数据布局(如B树索引或双向链表)都必需是准确的。3.断绝性:由并发事件所作的修正必需与任何别的并发事件所作的修正断绝。事件检察数据时数据所处的形态,要末是另外一并发事件修正它之前的形态,要末是另外一事件修正它以后的形态,事件不会检察两头形态的数据。这称为可串行性,由于它可以从头装载肇端数据,而且重播一系列事件,以使数据停止时的形态与原始事件实行的形态不异。4.耐久性:事件完成以后,它关于体系的影响是永世性的。该修正即便呈现体系妨碍也将一向坚持。2、指定和强迫事件处置SQL程序员要卖力启动和停止事件,同时强迫坚持数据的逻辑分歧性。程序员必需界说数据修正的按次,使数据相对其构造的营业划定规矩坚持分歧。然后,程序员将这些修正语句包含到一个事件中,使Microsoft?SQLServer?可以强迫该事件的物理完全性。企业数据库体系(如SQLServer)有义务供应一种机制,包管每一个事件物理的完全性。SQLServer供应:锁定设备,使事件互相断绝。纪录设备,包管事件的耐久性。即便服务器硬件、操纵体系或SQLServer本身呈现妨碍,SQLServer也能够在从头启动时利用事件日记,将一切未完成的事件主动地回滚到体系呈现妨碍的地位。事件办理特征,强迫坚持事件的原子性和分歧性。事件启动以后,就必需乐成完成,不然SQLServer将取消该事件启动以后对数据所作的一切修正。3、把持事件:使用程序次要经由过程指定事件启动和停止的工夫来把持事件。这可使用Transact-SQL语句或数据库API函数。体系还必需可以准确处置那些在事件完成之前便停止事件的毛病。事件是在毗连层举行办理。当事件在一个毗连上启动时,在该毗连上实行的一切的Transact-SQL语句在该事件停止之前都是该事件的一部分。
1、启动事件
在Microsoft®SQLServer™中,能够按显式主动提交或隐性形式启动事件。
1)显式事件:经由过程收回BEGINTRANSACTION语句显式启动事件。
2)主动提交事件:这是SQLServer的默许形式。每一个独自的Transact-SQL语句都在其完成后提交。不用指定任何语句把持事件。
3)隐性事件:经由过程API函数或Transact-SQLSETIMPLICIT_TRANSACTIONSON语句,将隐性事件形式设置为翻开。下一个语句主动启动一个新事件。当该事件完成时,再下一个Transact-SQL语句又将启动一个新事件。
4)毗连形式在毗连层举行办理。假如一个毗连从一种事件形式改动到另外一种,那末它对任何别的毗连的事件形式没有影响。
2、停止事件
可使用COMMIT或ROLLBACK语句停止事件。
1)COMMIT:假如事件乐成,则提交。COMMIT语句包管事件的一切修正在数据库中都永世无效。COMMIT语句还开释资本,如事件利用的锁。
2)ROLLBACK:假如事件中呈现毛病,大概用户决意作废事件,可回滚该事件。ROLLBACK语句经由过程将数据前往到它在事件入手下手时所处的形态,来恢复在该事件中所作的一切修正。ROLLBACK还会开释由事件占用的资本。
3、指定事件界限
能够用Transact-SQL语句或API函数和办法断定SQLServer事件启动和停止的工夫。
1)Transact-SQL语句:利用BEGINTRANSACTION、COMMITTRANSACTION、COMMITWORK、ROLLBACKTRANSACTION、ROLLBACKWORK和SETIMPLICIT_TRANSACTIONS语句来形貌事件。这些语句次要在DB-Library使用程序和Transact-SQL剧本(如利用osql命令提醒有用工具运转的剧本)中利用。
2)API函数和办法:数据库API(如ODBC、OLEDB和ADO)包括用来形貌事件的函数和办法。它们是SQLServer使用程序顶用来把持事件的次要机制。
3)每一个事件都必需只由个中的一种办法办理。在统一事件中利用两种办法大概招致不断定的了局。比方,不该先利用ODBCAPI函数启动一个事件,再利用Transact-SQLCOMMIT语句完成该事件。如许将没法关照SQLServerODBC驱动程序该事件已被提交。在这类情形下,应利用ODBCSQLEndTran函数停止该事件。
4、事件处置过程当中的毛病
1)假如服务器毛病使事件没法乐成完成,SQLServer将主动回滚该事件,并开释该事件占用的一切资本。假如客户端与SQLServer的收集毗连中止了,那末当收集告诉SQLServer该中止时,将回滚该毗连的一切未完成事件。假如客户端使用程序失利或客户盘算机溃散或重启,也会中止该毗连,并且当收集告诉SQLServer该中止时,也会回滚一切未完成的毗连。假如客户从该使用程序刊出,一切未完成的事件也会被回滚。
2)假如批处置中呈现运转时语句毛病(如违背束缚),那末SQLServer中默许的举动将是只回滚发生该毛病的语句。可使用SETXACT_ABORT语句改动该举动。在SETXACT_ABORTON语句实行以后,任何运转时语句毛病都将招致以后事件主动回滚。编译毛病(如语法毛病)不受SETXACT_ABORT的影响。
3)假如呈现运转时毛病或编译毛病,那末程序员应当编写使用程序代码以便指定准确的操纵(COMMIT或ROLLBACK)。
参考<<sqlserver2000匡助文件>>
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。 不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 一个是把SQL语句写到客户端,可以使用DataSet进行加工; SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。 再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
页:
[1]