深入理解SQL Server 中的错误处理
2007-05-19 09:44:32 来源:WEB开发网大多数迭代语言编译器都有内置的错误处理程序(例如,TRY…CATCH语句),开发者们在设计代码的时候可以利用它们。虽然SQL Server 2000的开发者不能够像迭代语言的开发者那样利用内置的工具,但是他们可以用系统变量@@ERROR来设计自己有效的错误处理工具。
引入事务
为了能够掌握在SQL Server 2000中错误处理是如何工作的,你必须首先要理解数据库事务的概念。在数据库术语中,事务就是指作为一个单独的工作单位出现的一系列语句。举个例子来说,假设你有三个语句要执行,事务就可以这样被设计,要么所有三个语句都成功发生,否则就一个都不发生。
在SQL Server中执行数据处理操作时,操作是在缓冲存储器中发生的,并不是立即被写入实际的表格中。然后,当SQL Server运行CHECKPOINT进程时,已经发生的变化才被写入磁盘。这也就意味着,在事务发生的过程中,变化并不被写入磁盘,直到它被提交了,才会被写入。运行时间较长的事务需要更多的处理存储空间,需要数据库保持更长时间的锁定。所以当你在工作环境中设计运行时间长的事务时,一定要小心。
下面是一个很好的例子,说明了利用事务的好处。从ATM中取钱需要以下几个步骤:输入一个PIN号码,选择一个帐户类型和输入你想要提取的资金的金额。如果你试图从ATM中取出50美元,然后操作失败,你肯定不愿意在没有拿到钱的情况下被扣除50美元。事务就可以被用来保证这种一致性。
SQL Server 2000中成功的错误处理需要始终如一地检查系统变量@@ERROR 的值。@@ERROR是指在所有语句在给定的连接下,在服务器上被执行以后,由SQL Server数据库引擎更新的一个变量。这个变量中包括了相应的错误号码,如果有的话。你可以在主数据库的sysmessages表格中找到这些错误号码的列表。关于这个表格的详细资料在微软的网站上已经被列出。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接