问题标签 [vsdbcmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
387 浏览

visual-studio - 用于添加到第三方数据库的 VSDBCMD 部署

我们在属于 ERP 系统的 SQL Server 2005 数据库中有一些自定义对象(存储过程等)。自定义对象与 ERP 对象处于不同的模式中。我们正在为所有自定义应用程序数据库使用 Database Edition .dbproj 项目和 vsdbcmd 部署,并希望类似地管理 ERP 数据库中的自定义对象。目前尚不清楚如何在没有以下任何一项的情况下做到这一点:

  1. 将所有 ERP 对象(约 4000 个表)导入 .dbproj 并手动使它们与 ERP 开发保持同步。Visual Studio 在我尝试导入这些的唯一一次失败了,所以我不知道它是否真的可以处理这种规模的项目。
  2. 以某种方式从差异过程中排除 ERP 模式(有两个),以确保它们不会被 vsdbcmd 删除。我还没有找到任何表明这是可能的文件。

我知道该IgnoreDefaultSchema设置,但有两个架构我需要忽略,而且我对“默认架构”方法不满意 - 不同用户的部署可能是灾难性的。

有没有人成功地使用 .dbproj 和 vsdbcmd 自定义添加到第三方数据库?如果没有,您如何管理 SQL 源代码控制和部署?

0 投票
1 回答
137 浏览

datadude - 如何修复数据库中的 TSD02016 错误

我有一个数据库,我正在使用 Visual Studio 2010 数据库项目工具 vsdbcmd.exe 来创建架构。

该工具报告错误:

错误 TSD02016,Gen-259 (12,50) 列名无效。未指定表名。

我将如何确定此错误的根源?

我在 Internet ( http://social.msdn.microsoft.com.... ) 上找到了一个资源,该资源指出关键字使用不正确的可能性,但错误消息并不相同。

什么是 259 代?

谢谢你,
基思

0 投票
1 回答
1262 浏览

visual-studio-2010 - 主键约束违反,仅在通过 vsdbcmd 部署数据库时

我正在使用 VS 2010 Premium RTMRel (10.0.30319.1) 和 SS2008。我有一个构建 AOK 的数据库,并有一个加载一些示例数据的部署后脚本。当我通过 VS UI 构建和部署这个数据库时,它工作得很好。当我尝试通过 vsdbcmd 部署它时,它在数据填充上失败,并出现如下错误:

** * SQL01268 C:\source\mydatabase.sql (5197,0) .Net SqlClient 数据提供者:消息 2627,级别 14,状态 1,第 227 行违反主键约束“pk_customers”。无法在对象“dbo.customers”中插入重复键。* *

出于演示目的,我试图将特定记录填充到客户表中,并覆盖 id 列的 IDENTITY 属性以设置我选择的值。我的部署后脚本中的相关行如下:

有谁知道为什么我可以通过 UI 而不是通过命令行覆盖 IDENTITY 列(通过使用 SET IDENTITY INSERT ON)?

不,客户表中不可能已经存在 id = 10001 的记录。表中根本没有其他记录(或插入)。

我相信错误消息的“对象中的重复键”部分是完全错误的,并且它反对我试图将我自己的值放入 PK 列。

PK 约束具有标准默认值。如果我更改默认值并设置 IGNORE_DUP_KEY = ON,则命令行部署有效。但我不想这样做。

任何见解或建议表示赞赏。

0 投票
2 回答
1351 浏览

database-project - vsdbcmd 可能会发生数据丢失,但是在哪里呢?

使用 vsdbcmd 部署我的数据库时:

我得到:

SQL01268 .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. The schema update is terminating because data loss might occur. SQL01268 An error occurred while the batch was being executed.

这很好,但它并没有告诉我数据丢失会发生在哪里。为了找出我必须使用<DeployToScript>True</DeployToScript>,然后加载脚本来查看:

IF EXISTS (select top 1 1 from [dbo].[MyTable]) RAISERROR ('Rows were detected. The schema update is terminating because data loss might occur.', 16, 127) WITH NOWAIT

有没有办法让 vsdbcmd 在直接部署到数据库时显示此信息而不必先生成 sql?

谢谢

0 投票
1 回答
2387 浏览

visual-studio-2010 - 数据库项目坚持“重建”表部署丢列

所以我有一个正在部署的 VS2010 数据库项目,其中有一些架构更改。我特别有一张表,VSDBCMD 坚持“重建”,即 rename->create->copy->drop

该表的唯一更改是删除了一些列,这可以通过我不知道的方式处理,删除列。通常我不会介意,除非这张特殊的桌子被称为“附件”,重量大约为 15 个演出。这需要很长时间,锁定数据库并在本地失败,因为我没有 15 多个免费演出,并且在我们的测试环境中远程超时。

任何人都可以指导我了解 VSDBCMD 在部署时更改架构所遵循的规则吗?

或者您是否遇到过类似的问题并有建议?

谢谢!

0 投票
1 回答
997 浏览

sql-server-2008 - 使用 vsdbcmd.exe 时无法加载 sqlceme35.dll

我正在使用 vsdbcmd.exe 在 Windows 7 x64 上将数据库部署到 SQL Server 2008,并且收到一条错误消息:

发生意外故障:无法加载 DLL 'sqlceme35.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)。

我不确定为什么会出现此消息。部署脚本与 SQL CE 无关,部署在其他 Windows 7 x64 机器上工作。

0 投票
3 回答
2350 浏览

database-project - 使用 vsdbcmd 部署数据库项目时,出现错误“为数据库启用了 Vardecimal 支持,但为项目禁用了”

我得到:SQL01265 Vardecimal support is enabled for the database but disabled for the project

我尝试将 .sqlsettings 文件更改为 have:"<VardecimalStorageFormatOn>True</VardecimalStorageFormatOn>"并将 .sqldeployment 文件更改为 have:"<DeployDatabaseProperties>True</DeployDatabaseProperties>"但我仍然收到错误消息。

这是VS2010 DB Project,项目设置为2005,正在升级的数据库是2008。

我们还有另一个 2005 数据库项目,它将更新 2008 数据库,即使在 .sqlsettings 文件中将 VardecimalStorageFormatOn 设置为 false 并且不部署数据库属性也是如此。

知道为什么一个会工作而另一个不会吗?

谢谢

0 投票
2 回答
1119 浏览

visual-studio-2010 - 使用 VSDBCMD 创建数据库失败

尝试使用 VSDBCMD 工具部署 VS2010 数据库项目时,出现以下错误:

但是,如果我使用 VSDBCMD 生成的 SQL 脚本并在 SQL Management Studio 中运行它,它就可以正常工作。同样,我可以在 Mgt Studio 中手动创建数据库。

“操作系统错误 21”显然是“设备未就绪”,但这对我来说似乎是虚假的......文件夹路径都是正确的,并且解锁文件夹的安全性并不能解决问题(例如“每个人”> 完全控制) . 此外,服务器上的 SQL 日志或事件查看器中没有错误。

在命令行上运行 VSDBCMD 和通过 Management Studio 运行相同的 SQL 脚本有什么不同??

任何想法都非常欢迎!

克里斯

0 投票
1 回答
363 浏览

database - VSDBCMD 用于两个数据库差异?

对“vsdbcmd 两个数据库差异”进行 Google/Bing 搜索并没有向我展示任何清晰的信息。我只有两个数据库位于同一台服务器上,我想区分它们,然后应用 A-> B 的模式差异。就像我在 VS2010 GUI 中可以做的那样。

谁能指出我正确的方向?

谢谢。

0 投票
2 回答
2806 浏览

visual-studio-2010 - Can't deploy database project - VSDBCMD deploy not seeing connection string in manifest

This tutorial shows how to Define a Custom Workflow to Deploy a Database from Team Foundation Build: http://msdn.microsoft.com/en-us/library/ff805001.aspx

However, when TFS tries to deploy my database, it complains that I must specify a connection string. I provided the .deploymanifest file as a command line parameter, and the .deploymanifest file has the connection string.

Why is VSDBCMD complaining that I haven't entered a connection string? It is also complaining about unresolved references, which are also contained in the .deploymanifest file.

Below is the top few lines of my .deploymanifest file:

EDIT: The .deploymanifest file snippet above is not correct. I took that snippet from the .deploymanifest file generated by my local build, not the TFS build. The .deploymanifest generated by the TFS build was incorrect, which led me to investigate the configuration being used, which ultimately solved my problem (see answer below).

And here are the errors I am getting from VSDBCMD: