我们使用Visual Studio数据库项目来管理我们的数据库模式。我们希望将数据库部署的.sql输出作为我们在InstallShield中创建的产品安装程序的一部分。如何在Windows安装程序中使用Visual Studio sql部署脚本
但是,当我们将sql脚本添加到InstallShield项目并运行安装程序时,安装程序无法运行脚本。我们得到一个OLEDB错误,抱怨:setvar(s),虽然我可以手动编辑sql脚本并修复它,但这不是一个真正的长期解决方案。
我们使用Visual Studio数据库项目来管理我们的数据库模式。我们希望将数据库部署的.sql输出作为我们在InstallShield中创建的产品安装程序的一部分。如何在Windows安装程序中使用Visual Studio sql部署脚本
但是,当我们将sql脚本添加到InstallShield项目并运行安装程序时,安装程序无法运行脚本。我们得到一个OLEDB错误,抱怨:setvar(s),虽然我可以手动编辑sql脚本并修复它,但这不是一个真正的长期解决方案。
垃圾进垃圾。 InstallShield只是读取脚本并针对OLEDB连接执行它。你可以告诉它错误中止,错误转到下一个语句或错误转到下一个脚本。除此之外,它就是这样。如果你的SQL有问题,他们需要修复。
InstallShield可以执行搜索并替换SQL上的处理。没有你的SQL样本很难说,到底该怎么做,但看一看:
Using InstallScript Text Substitution to Dynamically Replace Strings in SQL Scripts
我对这个正确的答案有如此负面的反应很有趣。这就像多年来我所知道的所有DBA一样,在实际上他们的SQL很脆弱时试图指责安装程序。现实情况是InstallShield正在使用无法连接的OLEDB连接,无论您生成哪种SQL都必须在该上下文中工作。 – 2012-01-19 12:06:02
关于此主题的旧文章:http://blog.deploymentengineering.com/2008/10/rfc-sql-scripts-are-almost-declared.html – 2012-01-19 12:07:04
':setvar'不是一件OLE DB理解。这些是'sqlcmd'的说明。 – 2012-01-19 03:23:52