sql-server-2008 – 在SQL Server中使用CLR用户定义的函数

我已经将CLR用户定义函数用于非常特定的实例,例如复杂的字符串处理,但从维护的角度来看通常不喜欢它们(还有另一个隐藏代码的地方).人们如何考虑这类功能的优缺点,是否有关于何时使用它们的最佳实践指南,从性能和维护的角度来看?
最佳答案
对于存储过程,这是典型的经典参数.事实是,你无法阻止人们连接到你的数据库.仓库里的Joe肯定会使用拥有所有业务规则的内部库存控制应用程序,他在Intranet上有一个愚蠢的终端/网络浏览器,他别无选择.但如果首席财务官鲍勃希望与Excel连接并做一些数据透视表,你是否会说不,你不能这样做,给我6个月的时间在应用服务器层写一个自定义应用程序?没有.或者Jane SQL顾问谁喜欢命令行客户端,而你正在度假,所以你不能告诉她没有.

但是你不想冒任何完整性问题的风险,所以把你的验证和业务规则放在某处,没有办法绕过它们,直接接近数据.也许T-SQL或C#不是最漂亮的语言 – 但SP和触发器是适合这项工作的工具.

除此之外,管理部署在数据库中的代码实际上与管理应用程序服务器中部署的代码(例如J2EE,COM对象等)没有什么不同.这是一个问题,就是不要将它视为任何“特殊”,对版本控制,构建和发布它等有适当的纪律.它是如何“隐藏”在你的网站上的?

转载注明原文:sql-server-2008 – 在SQL Server中使用CLR用户定义的函数 - 代码日志