代码之家  ›  专栏  ›  技术社区  ›  ljs TheVillageIdiot

在SQL Server 2005中使用.NET程序集

  •  3
  • ljs TheVillageIdiot  · 技术社区  · 16 年前

    我最近发现,可以在SQL Server>=2005服务器上放置.NET程序集,以便在T/SQL语句中调用.NET函数。

    我想知道人们发现这些东西的用途以及它们的表现如何?

    5 回复  |  直到 15 年前
        1
  •  3
  •   Oppositional    16 年前

    在我创建的sql 2005中,clr的第一个通用用途是一个sql2005程序集,该程序集具有各种函数,这些函数使用正则表达式执行字符串操作和模式匹配。可以扩充sql 2005中的本机字符串函数,以便可以验证电话号码或信用卡号码等常见格式,或者在存储过程中执行特殊的正则表达式。

    对于确定性用户定义函数,我发现sql clr支持的性能非常好。

        2
  •  0
  •   aku    16 年前

    我发现它非常有用。

    我使用这种可能性扩展了mssql2005 xml相关函数。

    如果我没记错的话,你甚至可以介绍你自己的数据类型。

        3
  •  0
  •   Eric Z Beard    16 年前

    如果需要以某种方式与操作系统交互(例如,将消息放入msmq或写入文件),则通常使用此选项。如果有一些复杂的数学或财务计算已经在.NET中实现,并且不想用T-SQL重新编写它们,那么它也很有用。

        4
  •  0
  •   spoulson    16 年前

    CLR与SQL 2005的集成对于在.NET中编写的用户定义函数/存储过程以及用户定义的数据类型特别有用。例如,您可以编写一个重载数据类型,允许sql定义对象和引用属性。例如,您可以编写一些超级重复的日期时间变化。

        5
  •  0
  •   CMB    15 年前

    相反,我同意你的看法。对于那些在t-sql中根本无法实现或几乎无法实现的东西(在hackish方法中是通过的),程序集是很好的。

    简单易用是关键。请注意以下含义…

    1. 使用程序集会导致信任/安全/权限配置问题。

    必须在数据库中定义程序集。如果程序集未签名,则数据库将必须允许不受信任的代码。分离/重新连接数据库时,将重置此数据库设置。

    1. 程序集的使用会影响SQL Server配置(不仅仅是数据库)。

    要运行程序集,必须首先确保禁用了SQL Server轻型池。

    1. 对于程序集函数,请记住对数据操作要保守;特别是在繁忙的表上。

    如果可以,请避免使用一次试图影响太多行的程序集方法。请注意表触发器中使用的触发器,因为其中一些触发器会严重降低性能。