Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么我的数据库项目升级脚本包括从引用的数据库项目重构?_Sql_Database Project_Sql Server Data Tools_Sqlpackage - Fatal编程技术网

Sql 为什么我的数据库项目升级脚本包括从引用的数据库项目重构?

Sql 为什么我的数据库项目升级脚本包括从引用的数据库项目重构?,sql,database-project,sql-server-data-tools,sqlpackage,Sql,Database Project,Sql Server Data Tools,Sqlpackage,希望这会有一些意义 我们有一组数据库项目,用于维护模式和生成升级脚本。为了生成升级脚本,我们使用一个自动生成引擎,该引擎使用SqlPackage.exe将数据库项目与“模式模板”进行比较,模式模板是实时数据库的副本,但没有数据 其中一个数据库引用了其他三个数据库项目 最近,我们发现,当为该数据库项目生成升级脚本时,它包括对某个引用项目中的表(而不是相关项目中的表)重构SQL 因此,升级脚本包括两部分SQL: 开始时打印语句,说明不会重命名架构对象 在重构日志中插入一堆insert语句 问题有两方

希望这会有一些意义

我们有一组数据库项目,用于维护模式和生成升级脚本。为了生成升级脚本,我们使用一个自动生成引擎,该引擎使用SqlPackage.exe将数据库项目与“模式模板”进行比较,模式模板是实时数据库的副本,但没有数据

其中一个数据库引用了其他三个数据库项目

最近,我们发现,当为该数据库项目生成升级脚本时,它包括对某个引用项目中的表(而不是相关项目中的表)重构SQL

因此,升级脚本包括两部分SQL:

  • 开始时打印语句,说明不会重命名架构对象
  • 在重构日志中插入一堆insert语句
  • 问题有两方面:

  • 这些重构不应包含在此升级脚本中;它们属于一个被引用的数据库项目-它们与此项目无关
  • 因为这个数据库不需要重构,所以它没有名为uuRefactorLog的表,因为升级脚本不需要创建它。这会导致生成失败
  • 我查看了数据库项目设置,看不出引用数据库项目的重构会包含在引用项目中的任何原因

    有什么想法吗


    UPDATE-缺少的重构日志表是一个骗局。由于某种原因,它包含在模式模板中,但不在实时数据库中,因此SqlPackage假定它不需要创建它。然而,我仍然很想知道,为什么从一个被引用的数据库项目中进行的所有重构都包含在有问题的项目中。

    这是SSDT中的一个缺陷-对此有一个跟踪。请注意,对于“相同的数据库”引用,应该包含重构日志。这是因为所有对象都将被推送到一个数据库中。错误在于“不同数据库”引用的重构日志被错误地包括在内,我猜这就是您遇到的问题

    谢谢凯文,这就是它的样子。