【问题标题】:Database Project and SQLCMD doing a comparisonDatabase Project 和 SQLCMD 做一个对比
【发布时间】:2025-12-03 06:15:01
【问题描述】:

我们目前有一个数据库项目,我们编写了一个 WIX 安装程序来部署它,使用 VSDBCMD 意味着我们能够与当前数据库进行比较,并在需要时进行更新或全新安装。

但是我们发现了一些问题: 1. 我们需要一个单独的数据库安装程序,需要在 SQL 服务器上执行(如果你想从另一台服务器上执行,我们发现只有当它是域服务器并且你使用可以访问两者的帐户时才能完成系统并且是 sql 的系统管理员)。 2. 必须安装紧凑型框架才能使 VSDBCMD 工作。

我们现在想要将数据库安装程序集成到我们的主安装程序中,这意味着大多数时候我们将从不同的系统安装,然后是 sql 机器,并且希望能够使用用于安装数据库的 SA 帐户。

我们已经尝试过 SQLCMD,但这似乎无法对现有数据库进行比较。

我想知道,如果 a) 可以使用 SQLCMD 进行比较以及它是如何工作的,或者 b) 如果 SQLCMD 不是一个选项,VSDBCMD 可以使用 sa 帐户,而不是域帐号?

谢谢

【问题讨论】:

    标签: visual-studio wix sqlcmd


    【解决方案1】:

    SQLCmd 只能在数据库服务器上执行 SQL 命令或批处理 - 它假定编写脚本的人知道数据库的当前状态,并且脚本将像在 SSMS 中运行一样被执行。

    如果您想使用 Visual Studio 的声明式开发功能,则需要使用 VSDBCMD 将它们部署到您的服务器计算机上。如果您在命令行中使用不使用集成登录的连接字符串,您应该能够从客户端计算机执行它。例如:

    "Data Source=$Server;User ID=$UserName;Password=$Password"
    

    那么 $UserName 的 SQL Server 登录就足够了。

    【讨论】:

      最近更新 更多