在 SQL Server 中使用 CLR 用户定义函数

Mil*_*s D 5 sql-server-2005 sql-server-2008

我已经将 CLR 用户定义函数用于非常特定的实例,例如复杂的字符串处理,但从维护的角度来看通常不喜欢它们(又是另一个隐藏代码的地方)。人们如何看待这种功能的优缺点,从性能和维护的角度来看,是否有关于何时使用它们的最佳实践指南?

Gai*_*ius 7

这是典型的论点,一般来说支持或反对存储过程。事实是,您无法阻止人们连接到您的数据库。当然,仓库中的 Joe 将使用内部库存控制应用程序,其中包含您所有的业务规则,他在 Intranet 上有一个哑终端/网络浏览器,他别无选择。但是,如果首席财务官 Bob 想要与 Excel 联系并制作一些数据透视表,您是否会说不,您不能这样做,给我 6 个月的时间在应用程序服务器层为您编写自定义应用程序?不。或者喜欢命令行客户端的 Jane SQL 顾问,而您正在休假,所以您不能拒绝她。

但是您不想冒任何完整性问题的风险,因此将您的验证和业务规则放在无法绕过它们的地方,就在数据附近。也许 T-SQL 或 C# 不是最漂亮的语言 - 但 SP 和触发器是适合这项工作的工具。

除此之外,管理部署在数据库中的代码实际上与管理部署在应用服务器中的代码没有什么不同(例如 J2EE、COM 对象,等等)。只是不要将其视为任何“特殊”的东西,对版本控制、构建和发布等进行适当的纪律处分。它是如何“隐藏”在您的站点上的?