【问题标题】:Schema Comparison Detects Differences for Identical Stored Procedures [closed]模式比较检测相同存储过程的差异
【发布时间】:2015-07-17 02:14:01
【问题描述】:

我正在使用 Visual Studio 2012 架构比较工具来比较具有 Microsoft SQL Server DAC 包文件 (dacpac) 的实际数据库。期望是数据库和文件是“相等的”。但是,模式比较报告了三个存储过程的BodyScript 属性的差异,它们都包含大量动态 SQL。然而,令人沮丧的是,在对象定义的实际差异中,存储过程的定义之间没有明显的差异。此外,我们已经将脚本复制到许多不同的差异工具中以查找空格类型的差异,但看起来这两个脚本是二进制相同的。我们尝试了许多模式比较选项(忽略空格、忽略关键字大小写等),但似乎没有任何方法可以解决这个问题。

在研究这个问题时,我在Microsoft ConnectStackOverflow 上也遇到过类似的问题,但似乎这些问题尚未解决。有人对解决此问题的其他方法有任何建议吗?

【问题讨论】:

    标签: sql-server visual-studio-2012 stored-procedures dacpac schema-compare


    【解决方案1】:

    看来这个问题是由字符串文字中的换行符引起的。

    这很糟糕:

    DECLARE @badQuery NVARCHAR(MAX) = N'SELECT
                                          *
                                        FROM
                                          [dbo].[MyRadTable]';
    

    这很好:

    DECLARE @goodQuery NVARCHAR(MAX) = N'SELECT '+
                                          '* ' +
                                        'FROM ' +
                                          '[dbo].[MyRadTable]';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 2015-10-02
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      相关资源
      最近更新 更多