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

Posted

技术标签:

【中文标题】VS 数据库项目在运行时生成了错误的脚本【英文标题】:VS Database project generated bad script on run 【发布时间】:2015-03-20 15:45:59 【问题描述】:

我有一个 Visual Studio 2013 数据库项目,当我部署(作为在解决方案中运行项目的一部分)时,我收到此错误: “检测到第 6 行。架构更新正在终止,因为可能会发生数据丢失。”

我在 sql 脚本中找到了有问题的行。

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

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

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

1) 为什么我运行时它会部署?我找不到该设置,并且同一项目的其他开发人员也不会发生这种情况。它必须是视觉工作室设置。

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

【问题讨论】:

【参考方案1】:

为什么我运行时它会部署?

检查配置管理器(构建菜单 > 配置管理器)。可能为数据库项目选中了 Deploy 复选框。

从运行部署时会使用什么 connectString?

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

【讨论】:

以上是关于VS 数据库项目在运行时生成了错误的脚本的主要内容,如果未能解决你的问题,请参考以下文章

运行所选代码生成器时出错:'对象引用未设置为对象的实例。'错误?

在使用vs2010时,说发生错误,找不到文件,大神求助

VS 2017 RC尝试调试xUnit测试时生成0x8000ffff错误

调试时“运行脚本”如何在 VS Code 中为 node.js 应用程序工作?

VS2013创建C#控制台程序,调试错误,尝试运行项目时出错:拒绝访问

选择多个存储过程时如何强制VS2008“生成创建脚本到项目”到多个文件?