Database 在数据库中部署/发布数据时,我如何知道任何特定的一个命令失败?

Database 在数据库中部署/发布数据时,我如何知道任何特定的一个命令失败?,database,visual-studio-2013,sql-server-data-tools,database-project,dacpac,Database,Visual Studio 2013,Sql Server Data Tools,Database Project,Dacpac,我已经在visual studio 2013中创建了数据库项目。项目构建成功。在这个项目中,我在部署后插入了一些测试数据。如果任何数据插入失败,那么如何知道脚本中的一个在特定位置失败 实际上,如果脚本文件本身的任何命令失败,我想回滚所有内容。由于SQL Server 2012不支持从部署前/部署后脚本回滚。结果窗口将显示任何错误的行和详细信息,这有点烦人,因为它有时会显示脚本开头的文本,但错误行号是正确的 您应该做的一般事情是确保插入脚本可重新运行,然后如果确实看不到错误,您可以自己运行脚本进行

我已经在visual studio 2013中创建了数据库项目。项目构建成功。在这个项目中,我在部署后插入了一些测试数据。如果任何数据插入失败,那么如何知道脚本中的一个在特定位置失败


实际上,如果脚本文件本身的任何命令失败,我想回滚所有内容。由于SQL Server 2012不支持从部署前/部署后脚本回滚。

结果窗口将显示任何错误的行和详细信息,这有点烦人,因为它有时会显示脚本开头的文本,但错误行号是正确的

您应该做的一般事情是确保插入脚本可重新运行,然后如果确实看不到错误,您可以自己运行脚本进行调试

我真的建议使用MERGE语句进行插入:)

我通常还建议使用sqlpackage.exe推送到本地Deb实例,而不是vs publish,请参阅:


埃德

是的,埃德,你说得对。但是1)如果任何语句失败,我需要执行回滚。2) 此外,我正在使用dacpac部署数据。有没有办法找到同样的答案。由于SQL server不允许我回滚到部署后脚本,因此我必须手动执行此操作。您可以将自己的事务/回滚添加到部署后脚本(它不会回滚架构更改),但由于它是一个开发人员实例,我总是修复问题并重新部署,并确保我加入了一个流程,以防止它再次以这种方式崩溃:)