【问题标题】:Deploy SQL 2008 R2 MDS Functions without MDS在没有 MDS 的情况下部署 SQL 2008 R2 MDS 函数
【发布时间】:2010-08-30 21:30:20
【问题描述】:

SQL Server 2008 R2 有一个新的主数据服务功能,其中包括一些非常好的正则表达式匹配和提取功能:

http://msdn.microsoft.com/en-us/library/ee633712.aspx

我正在运行 2008 R2,并希望在 MDS 数据库之外运行这些函数

我该怎么办?有没有办法提取它们并将它们重新应用到我自己的数据库中?

【问题讨论】:

    标签: sql-server regex sql-server-2008


    【解决方案1】:

    我想通了,并在我的博客上完整地记录了它(带有屏幕截图)。 http://www.pettijohn.com/2010/08/regular-expressions-in-sql-2008-r2.html

    总结:

    • 从 D:\MasterDataServices\x64\1033_ENU 安装 MDS
    • 运行配置管理器并设置新的 MDS 数据库。您将从这里复制到您自己的数据库中。
    • 为 Microsoft.MasterDataServices.DataQuality 程序集编写脚本(可编程性/程序集/右键单击/脚本为/创建)
    • 将 AUTHORIZATION 更改为 db_datareader
    • 找到您需要的函数(正则表达式在标量下),然后右键单击、编写脚本、创建。
    • 删除 USE 块,并将命名空间更改为 dbo 或您自己的命名空间。
    • 在您自己的数据库上运行所有脚本,从程序集开始。

    【讨论】:

    • 聪明你想出了如何做到这一点,但我不会推荐这种方法,当然也不会允许它在我的商店。您是否要记住通过热修复、服务包等使您提取的副本与 MDS 版本中发生的任何更改保持同步?在我看来,在这种情况下风险大于回报。
    • 肯定不比使用三年前发表的文章中的代码差。
    • 但该代码将 100% 在您的控制范围内。您无法预测 Microsoft 何时会决定更改部署为 MDS 的一部分的代码。例如,如果他们要识别并修复错误,您提取的代码仍将包含该错误,除非您对保持同步保持高度警惕。
    • 我们很乐意这样做,但合法性是什么?要使用 MDS,您必须将其安装在 SQL Enterprise、DataCenter 或 Developer 许可证上。如果我将它安装在企业许可证上,提取代码并将其安装在标准许可证上是否合法?似乎它正在获取企业代码并将其放在非企业许可的服务器上。
    【解决方案2】:

    趁热去拿。

    Adapted string functions and assembly from Sql Server 2008 R2 MDS

    该软件包包括以下功能:

    TVF:

    • Ngram
    • 正则表达式匹配
    • 正则表达式拆分
    • 拆分

    SVF:

    • 正则表达式提取
    • RegexIsMatch
    • RegexIsValid
    • 正则表达式掩码
    • 正则表达式替换
    • 相似度
    • 相似度日期
    • XmlTransform

    我将默认架构更改为 dbo。

    【讨论】:

      【解决方案3】:

      您可以通过 SQL 2005/2008 中的 CLR 集成访问 .NET Regex 类。见:Regular Expressions Make Pattern Matching And Data Extraction Easier

      【讨论】:

      • 这是一个有效的正则表达式实现,是的,但我想要 MDS“由 SQL 团队编写并附带 SQL 服务器”版本。仍然是 CLR,而且我从 MDS 路线中获得了温暖和模糊的奖励。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      相关资源
      最近更新 更多