VSDBCMD与SQLCMD

VSDBCMD与SQLCMD,sql,database,visual-studio-2010,project,datadude,Sql,Database,Visual Studio 2010,Project,Datadude,在使用VS 2010数据库项目时,哪个是部署数据库VSDBCMD或SQLCMD的更好选项。除了默认变量databasename、datapath和logpath之外,还有什么主要缺点吗?是一种差异工具:它可以分析.dbschema,将其与目标数据库进行比较,并通过选择性地添加、删除和更改现有对象,将目标数据库提升到.dbschema文件中的模式。只是一个执行工具,它需要一个.sql脚本并盲目地运行它。这两个工具在用途和功能上完全不同。你的问题不是很清楚,所以给你一个好答案并不容易,但根据你对Re

在使用VS 2010数据库项目时,哪个是部署数据库VSDBCMD或SQLCMD的更好选项。除了默认变量databasename、datapath和logpath之外,还有什么主要缺点吗?

是一种差异工具:它可以分析.dbschema,将其与目标数据库进行比较,并通过选择性地添加、删除和更改现有对象,将目标数据库提升到.dbschema文件中的模式。只是一个执行工具,它需要一个.sql脚本并盲目地运行它。这两个工具在用途和功能上完全不同。

你的问题不是很清楚,所以给你一个好答案并不容易,但根据你对Remus答案的评论,我假设你正在尝试执行vsdbcmd.exe生成的.sql脚本。如果我的假设是正确的,您需要使用sqlcmd.exe来执行此脚本


根据,,VSDB团队不希望复制sqlcmd.exe中已经存在的vsdbcmd.exe中的功能。

用于部署目的,即运行脚本-如果我没有使用.dbschema并使用生成的部署文件,哪一个更可取?我应该补充一点,我链接到的线程从2008年9月开始变旧,所以从那以后情况可能发生了变化。是的,你是对的。我尝试使用VSDBCMD和各种选项,但使用VSDBCMD生成可部署文件,然后在不同的环境中使用SQLCMD进行部署似乎更容易。感谢msdn链接。这里的危险在于并非所有的目标数据库都是相同的,因此它们需要应用不同的脚本才能将它们带到目标模式。如果您的所有环境都保证始终处于同一个模式,那么执行diff并发布结果是可以的,但仍然是危险的。