MSSQL网页编程之金额算计求值成绩
对于update操作,event中依次记录旧行,新行的值。金额|成绩原帖地点:
http://community.csdn.net/Expert/topic/3190/3190686.xml?temp=.6296961
表test中纪录:
aabb
00150.5
00260
00315.4
00425
00548
...
输出任一金额,然后在表中查找是不是有该金额或几笔记录的算计即是该金额.
如:输出25,则要找出004,输出85,则要找出002与004,顺次类推。
------------------------------------------------------------------------------------
--测试数据
createtabletest(aavarchar(10),bbnumeric(10,2))
inserttestselect001,50.5
unionallselect002,60
unionallselect003,15.4
unionallselect004,25
unionallselect005,48
unionallselect006,37
go
--查询函数
createfunctionfn_search(@Numnumeric(10,2))
returns@rtable(aavarchar(10),bbnumeric(10,2))
as
begin
declare@ttable(aavarchar(8000),aa1varchar(10),bbnumeric(10,2),levelint)
declare@lint
insert@rselectaa,bbfromtestwherebb=@num
if@@rowcount>0gotolb_exit
set@l=0
insert@tselect,+aa+,,aa,bb,@lfromtestwherebb<@num
while@@rowcount>0
begin
insert@rselectdistincta.aa,a.bb
fromtesta,(
selecta.aa,a.bb,aa1=b.aafromtesta,@tb
whereb.level=@l
andb.aa1<a.aa
anda.bb=@num-b.bb
)bwherea.aa=b.aaorcharindex(,+a.aa+,,b.aa1)>0
if@@rowcount>0gotolb_exit
set@l=@l+1
insert@tselectb.aa+a.aa+,,a.aa,a.bb+b.bb,@l
fromtesta,@tb
whereb.level=@l-1
andb.aa1<a.aa
anda.bb<@num-b.bb
end
lb_exit:
return
end
go
--挪用测试1
select*fromdbo.fn_search(25)
/*--了局
aabb
----------------------
00425.00
(所影响的行数为1行)
--*/
--挪用测试2
select*fromdbo.fn_search(135.5)
/*--了局
aabb
----------------------
00150.50
00260.00
00425.00
00548.00
00637.00
(所影响的行数为5行)
--*/
--挪用测试3(找不到的,无前往值)
select*fromdbo.fn_search(135.7)
/*--了局
aabb
----------------------
(所影响的行数为0行)
--*/
go
droptabletest
dropfunctionfn_search
我们分析上面的两个操作,都有一个“删除数据”的过程。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题! Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。 两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。 也可谈一下你是怎么优化存储过程的? 分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。 这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
页:
[1]