金色的骷髅 发表于 2015-1-16 22:30:02

MYSQL教程之在SQLServer的存储过程当中处置毛病

对于现有业务,可以轻松移植到MySQL。当你需要替换掉老的硬件,当你需要削减历史遗留下的老系统的时候,选用MySQL对于财务部门来说更具吸引力。server|sqlserver|存储历程|毛病 SQLServer存储历程中的“毛病处置”只是向客户端前往毛病,一般会见供应者能够自
己做。可是最少你能够晓得在实行T-SQL的时分何止产生了何种毛病。本文中,我会先容在
  你错了
  SQLServer有靠近3800个预界说毛病代码,由主目次的sysmessages表保护。每个错
误代码都有响应的准确的级别,该级别大抵形貌了毛病。毛病界说的级别从0到25。20以上的
毛病代表严重毛病,一般意味着该毛病会招致存储历程立即停止,而且一切的客户毗连都要重
新初始化。非关头性毛病只是克制失落以后运转的程序行,并持续实行。一切的毛病代码都有预
  那末在失掉这些信息后要做甚么呢?在会见存储历程的时分产生毛病,能够经由过程@@ERROR
体系函数前往毛病代码。经由过程查阅sysmessages能够失掉实在的毛病信息和级别。
  毛病处置基本
  假定有一个表叫做NoNullsAllowed,有两个字段Field1和Field2。都不克不及为空。上面的
  CREATEPROCEDUREIllegalInsertAS
  INSERTNoNullsAllowedVALUES(NULL,NULL)
  PrintErroroccurred
  Print@@ERROR
  假定另有上面的历程:
  CREATEPROCEDURESampleProcedure
  AS
  EXECIllegalInsert
  Print@@ERROR
  当经由过程QueryAnalyzer挪用SampleProcedure的时分,毛病就会产生。
  Server:Msg515,Level16,State2,ProcedureIllegalInsert,Line2
  CannotinsertthevalueNULLintocolumnField2,table
  tempdb.dbo.NoNullsAllowed;columndoesnotallows.INSERTfails.
  Thestatementhasbeenterminated.
  Erroroccurred
  0
  0
  这个小实验能够告知你一些事变
  @@ERROR函数仅仅前往毛病代码
  假如@@ERROR前往0,则没有毛病。
  招致非严重毛病的语句会被跳过,历程会持续实行下一个语句。
  基础战略
  由这三点,能够计划战略。实际中,实践的情形是几近不成能制订战略,可是从某个角度
  反省存储历程中的每行有些不实在际,以是应当反省那些关头的中央,好比关头性语句
  如事后继语句依附后面的语句,检测到毛病后必要手动的停止历程。
  依附会见供应者关照客户毛病。
  发生毛病
  RAISEERROR能够发生定制的毛病信息大概编号前往给客户端。上面是RASIEERROR的语法,
表A是各个参数的注释。  RAISERROR({msg_id|msg_str}{,severity,state}
  ])
  ]
  起首能够使用的RAISEERROR发生预界说毛病代码。RAISEERROR吸收13000以上的毛病代码
  实践上,RAISERROR更多的用来发送定制毛病信息。好像图A所示,msg_str标识符能够包
恣意的毛病信息,也就是说RAISERROR能够将特定的毛病信息前往给客户。
  定制毛病信息
  固然,年夜多半情形下,毛病信息会利用屡次,一遍一遍的输出不异的信息明显部明智。使
用sp_addmessage存储历程将定制毛病信息增加到sysmessages内外。今后,在利用
  定制毛病信息的标识号必需年夜于即是50000,信息自己的长度不克不及凌驾255个字符。上面
是例子,创立新的信息,付与辨认号55555,级别为10,sp_addmessage
  存储历程必要如许挪用。
  sp_addmessage55555,10,Newerrormessage.
  你能够在存储历程中增添提交新的毛病:
  RAISERROR55555,10
  不难,只是分歧
  创立带有毛病检测的存储历程其实不难,仅仅是和年夜多半大概会用到的分歧罢了。只必要一
个好的企图和相干的常识,能够能够很简单的利用他。
如IBM公司最近宣布让渠道合作伙伴分销其SaaS应用程序的新计划。微软认为MySQL学习教程是销售其云计算服务的重要组成部分。然而即使有这种趋势,DBaaS仍然不同于内部数据库,解决方案提供商必须认识到这一点;否则,他们不仅仅是丢失几个客户,而是要失去的更多。

透明 发表于 2015-1-19 15:21:37

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

只想知道 发表于 2015-1-27 09:29:36

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

谁可相欹 发表于 2015-2-5 07:29:43

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

金色的骷髅 发表于 2015-2-11 08:09:27

XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)

冷月葬花魂 发表于 2015-3-2 01:15:56

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关

海妖 发表于 2015-3-11 01:35:31

一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。

活着的死人 发表于 2015-3-17 18:10:54

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

小妖女 发表于 2015-3-17 18:10:45

现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.

蒙在股里 发表于 2015-3-24 19:11:07

入门没那么困难,精通没那么容易
页: [1]
查看完整版本: MYSQL教程之在SQLServer的存储过程当中处置毛病