SQL SERVER2000深入学习之常见错误SQL SERVER2000深入学习 之常见错误
/*数据库编程中常见的错误*/ --(1)处理空值 --(2)从结果集中对变量进行赋值 --(3)没有受影响的记录 --(4)错误大小或数据类型 --(5)默认长度所引发错误 --(6)触发器回滚 --(7)警告和优先级错误 --(8)嵌套注释 --(9)延迟名称解析 --(10)游标 --(11)过分自信
/* for example*/
--(1) 处理空值 --wrong->follow --if @score=null (except set Ansi_Nulls off) --if @score<>null
--Right --if @score is null --if @score is not null
--(2) 从结果集中对变量进行赋值 --未考虑返回记录集为空时并未对变量进行初始化所引起的问题 --当想返回给变量记录集最后一条记录可能出错,因为 有时很难预测最后一条记录时哪一条 --这取决于所用的索引和查询
--(3) 没有受影响的记录 --有时或许我们需要假设当T-SQL语句没有影响任何记录时,SQL-server将返回错误 --因为其是逻辑错误所以不可用@@Error来检测,应用@@rowCount
--(5)默认长度 /* declare @vchardef varchar set @vchardef='123456789012345678901234567890' select datalength(@vchardef),@vchardef --将返回1 1 */ /* the follow is right declare @vchardef varchar(30) set @vchardef='123456789012345678901234567890' select datalength(@vchardef),@vchardef */ (6) )延迟名称解析 --Set Xact_Abort On --语句强制SQL_SERVER在出现错误时回滚整个事务,并停止进一步执行,停止当前批处理的执行,错误均被当成致命错误 --但是其不会检测到“编译错误中应延迟名称解析的原因而未在编译阶段发现的错误”如更新不存在的表 --因而并不在错误发生时回滚,而是继续提交和执行 (t113)
上一篇:Sql Server数据库查询语句精华 下一篇:SQL server 数据库定时自动备份小技巧 更多相关文章
|
推荐文章
精彩文章
|