关于 T-SQL 的几点小九九
2009-06-08 10:31:48 来源:WEB开发网如果您认真看过上面一大段的 T-SQL 代码,剔除那些无用的部分,您定会发现感兴趣的关键代码,呵呵。没错,有同仁会发现上面的 T-SQL 代码都是在 SQL Server 2000 编写的,从获取 @@ERROR 处理错误机制的方式上看来,有着非常浓郁的 SQL2000 的风格味道,没有 SQL2005 处理错误机制那么灵活和华丽。同时,我大量使用了非 ANSI 的 SELECT 赋值,尤其是在给多个变量赋值时,没有采取 SET 赋值的方式。其实,在正确获取 @@ERROR 和 @@ROWCOUNT 值时候,如果仅仅只是声明两个变量 @error 和 @rowcount,然后利用 SET 分别将全局变量赋值给局部变量的话,您将无法获取正确的 @rowcount 值,因为 SET @error = @@ERROR 就会产生一条影响行数的记录。故此,要想在 ANSI SQL 标准下获得正确的 @rowcount 值不是看起来那么简单的事情。但是如果您使用 T-SQL 语法的话,简单的使用 SELECT 给多个变量赋值的特点的话,一句话就能解决这个问题:SELECT @rowcount = @@ROWCOUNT, @error = @@ERROR;。
从我编写上面那个较长的存储过程时候,我就不停告诉过自己,如果死里想插入数据那一刻就要生存满足业务规则的编号,会将把自己置于一个窘迫的禁地,有时我们真的需要退一步,让自己追寻那海阔天空的感觉,这未尝不是件好事,我就是在一退中找到了进的感觉。当然,在解决这个按照指定规则生成连续编号的问题时,我所给出的解决方案不一定就是最优的方案,希望能够得到大家积极回复和探讨。
其实,关于 SQL Server 和 T-SQL 的话题实在太多太多,自己能力有限,想表达的东西总是落笔顿塞,只能一点一点挤牙膏似的记录下来,与大家共同商讨学习,停笔之时,已经是凌晨5点,毫无倦意,心中已酝酿下一篇关于 T-SQL 的小九九了。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接