WEB开发网
开发学院数据库MSSQL Server 关于 T-SQL 的几点小九九 阅读

关于 T-SQL 的几点小九九

 2009-06-08 10:31:48 来源:WEB开发网   
核心提示: 如果您认真看过上面一大段的 T-SQL 代码,剔除那些无用的部分,关于 T-SQL 的几点小九九(8),您定会发现感兴趣的关键代码,呵呵,已经是凌晨5点,毫无倦意,没错,有同仁会发现上面的 T-SQL 代码都是在 SQL Server 2000 编写的

如果您认真看过上面一大段的 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 的小九九了。

上一页  3 4 5 6 7 8 

Tags:关于 SQL 小九九

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接