【问题标题】:Parsing SQL Check Constraint解析 SQL 检查约束
【发布时间】:2010-12-13 14:45:43
【问题描述】:

我正在从数据库中读取列约束。
例如:

(substring([name],(1),(1))='P' OR len([name])>(2) AND len([name])>(4) AMD (len(name)>5 OR len(name)<4))

这个想法是每个开括号都必须关闭。
当我们添加新的检查约束时,SQL 管理工作室会自动插入数字和函数周围的括号。 谁能建议如何解析这些字符串?

我的目标是将列检查约束转换为 C# 代码,以便我可以构建实体验证器。所有数据库表都映射到实体类。

【问题讨论】:

    标签: c# sql constraints


    【解决方案1】:

    简单的答案:这并不容易。至少如果你想把它做对的话……

    您正在谈论定义用于定义约束的 DSL(这“巧合地”与 TSQL 完全一样)。恕我直言,您需要使用某种解析器工具才能做到这一点。也许你应该考虑使用Irony

    不过,这是一个有趣的想法。我可以看到它的优点——我只是认为这不会比简单地将数据库用作数据存储库(没有任何类型的数据验证——可能只有外键约束)并专注于将所有业务规则定义到.NET 服务器端...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2015-08-07
      • 1970-01-01
      相关资源
      最近更新 更多