代码之家  ›  专栏  ›  技术社区  ›  Troy Hunt

红门SQL源代码管理能否识别案例更改?

  •  2
  • Troy Hunt  · 技术社区  · 14 年前

    我刚刚对源代码管理下的一个数据库做了一些只区分大小写的更改(只是列名),并注意到红门SQL源代码管理没有接受这些更改(没有要提交的更改)。

    该工具是否会以本机方式识别更改?是否依赖于数据库的排序规则?这些名称一直保存到ORM中,因此在编译时案例变得非常重要。

    更新

    为了给出一个用例场景,我在SQL Source Control下运行了一个DB,它是在sqllatin1u-General-cp1u-ciu下运行的,作为排序规则,它不区分大小写,这对DB来说很好。然后我有一个web应用程序使用从数据库持久化的LINQ to SQL类。

    然后我决定把“ID”改成“ID”,让FxCop开心。我已经在数据库中更改了它,重新生成了类并更改了web应用程序中的任何引用。因为我无法在源代码管理下得到这个更改,如果其他人从VCS中提取数据库并重新生成LINQ to SQL类,那么对“Id”的每个引用都将在.NET端中断。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Community omersem    7 年前

    如果数据库已设置为不区分大小写的排序规则,则此行为可能是由SQL Server本身造成的。

    要查看是否如此,请参阅StackOverflow文章: SQL Server check case-sensitivity?

    如果是这样,则需要将数据库更改为区分大小写的排序规则。

        2
  •  1
  •   Troy Hunt    14 年前

    在花更多时间深入研究这个问题之后,让红门的克里斯不确定解决方案,也没有从这篇文章或 equivalent one in the Red Gate forums ,我叫它虫子。我很想被证明是错的,但事实似乎是这样(对不起双关语!).

    所以,为了明确回答我的问题,不,看起来SQL源代码管理不能对仅限大小写的更改进行本机版本化。但是,有一个解决方案涉及到在工作目录中进行更改并通过TortoiseSVN将其提交回来(假设VCS是SVN)。全部细节现在都在 Defeating Red Gate’s SQL Source Control insensitivity .