VS 数据库项目在 运行 上生成了错误的脚本

VS Database project generated bad script on run

我有一个 visual studio 2013 数据库项目,当我部署时(作为 运行 解决方案中项目的一部分)我收到此错误: "Line 6 Rows were detected. The schema update is terminating because data loss might occur."

我在 sql 脚本中找到了违规行。

SQL 脚本正在尝试将列类型从 NVarchar 更改为 Varchar。但它不需要这样做 - 数据库中已经是 Varchar。

这在我从数据库项目发布时有效。它没有用于更改列类型的行。那是因为它已经 运行 并更改了列。现在不需要更改列。

但是当我 运行 (ctrl-F5) 时,它会构建我的解决方案并尝试部署。这是我收到错误的时候。

1) 为什么在我运行 时部署?我找不到该设置,同一项目中的其他开发人员也不会遇到这种情况。它必须是 visual studio 设置。

2) 从 运行 部署时它会使用什么 connectString?也许它正在从另一个数据库实例获取连接字符串。

Why does it deploy when I run?

检查配置管理器(构建菜单 > 配置管理器)。可能选中了数据库项目的“部署”复选框。

What connectString would it be using when it deploys from a run?

在项目属性的“调试”选项卡中定义的连接字符串。