SQL Server 2005中通用的自定义函数,实现类似Min或MAX函数功能
开发一个通用的自定义函数,适用每个表,而不是某一个具体的表专用,类似SQL Server 2005的Min或MAX函数功能。
主要实现:
1、在sql语句中直接可以取出值来。从select 的from 子句中传递表名,参数中传递要判断的字段名,即类似于select max(myid) from mytable 。这样处理就不用对每一个表都写一个函数(里面直接封装表的名称)。
2、因为我想做一个通用的ID流水号生成器,而不是专用于某一个表而实现。所以我想到了max和min这两个东东。通常使用 insert into 来追加记录。想通过以下这种方式追加记录: Insert into mytable (id,other_cols) select getnextid(id),'值' from mytable 。
注意:由于存储过程必须执行一行命令,所以不能满足要求。
源程序:
编译成Dll後,就可以在sql中使用了。ex:
编译成CLRMax.dll,放至c:/中。
然後在sql中执行下述语句创建aggregate的function
开启CLR ENABLED.
--使用测试.
感谢CSDN的Garnett_KG朋友提供源码,受益匪浅。