为什么SSDT Schema Compare在DefaultExpressionScript中显示出差异?

时间:2015-10-13 03:59:34

标签: sql visual-studio sql-server-2008-r2 sql-server-data-tools ssdt-bi

在使用SSDT将数据库实例与VS2010中的数据库项目进行比较时,它显示了其中一个存储过程的差异。 Store Procedure DDL脚本完全相同,但是当我在Store Procedure下展开Properties文件时,它显示了DefaultExpressionScript的不同。

源SP在DefaultExpresionScript中显示:

DefaultExpressionScript = at

目的地SP有这个:

DefaultExpressionScript = -1

我不知道在哪里可以更改此内容,我的数据库项目中没有名为DefaultExpressionScript的对象。我应该在哪里解决这个问题?

3 个答案:

答案 0 :(得分:7)

此错误仍存在于使用SSDT 14.0.61021.0的VS 2015 Update 3中。但是,只需在SSMS中使用ALTER ...编写存储过程脚本并运行该查询(不应该更改任何内容),就可以为我修复它。架构比较之后不再显示差异。

答案 1 :(得分:1)

DefaultExpressionScript是其中一个存储过程参数的默认值。我建议使用Script As从数据库中获取存储过程的TSQL定义,并验证存储过程的默认值是否与数据库项目中的内容相匹配。

另外,请注意,VS2010中没有针对架构比较的大量错误修复。您是否考虑过安装最新版本的Visual Studio 2015 Express with SSDT

答案 2 :(得分:-1)

我终于找到了解决方法。您只需为受影响的SP编写脚本以进行修改并运行Alter语句,而无需进行任何更改。它会纠正这些值。