Database 如何运行sql脚本使用Wix创建数据库
我在使用Wix创建数据库时遇到问题。我可以找到的示例(参见下面的链接)都是首先使用wix创建数据库,然后运行CREATETABLESQL脚本。问题是,我需要将wix设置为使用createdatabase运行sql脚本来创建数据库和表,而不是首先使用.wxs文件中的SqlDatabase标记来创建数据库。在Wix中可以这样做吗?我正在使用SQLServerExpress。任何关于如何做到这一点的例子都会很有帮助 sql脚本示例:Database 如何运行sql脚本使用Wix创建数据库,database,wix,Database,Wix,我在使用Wix创建数据库时遇到问题。我可以找到的示例(参见下面的链接)都是首先使用wix创建数据库,然后运行CREATETABLESQL脚本。问题是,我需要将wix设置为使用createdatabase运行sql脚本来创建数据库和表,而不是首先使用.wxs文件中的SqlDatabase标记来创建数据库。在Wix中可以这样做吗?我正在使用SQLServerExpress。任何关于如何做到这一点的例子都会很有帮助 sql脚本示例: CREATE DATABASE My_DB CREATE TABL
CREATE DATABASE My_DB
CREATE TABLE Test (Value1 CHAR(50), Value2 INTEGER)
CREATE INDEX TestIndex ON Test (Value1)
提前谢谢。非常感谢您的帮助。您需要有
SqlDatabase
标签。没有它,安装程序将永远不知道脚本必须在哪个服务器和数据库上运行。但是,您可以将CreateOnInstall
和droponninstall
(您可能需要三个CreateOnX
和三个DropOnX
)设置为no
,以防止自动创建或删除数据库
请注意,如果执行此操作,则应提供一个在回滚时运行的
SqlScript
,以便在安装程序失败时删除数据库。这通常是使用SqlDatabase
标记自动完成的。为什么不使用包含SQL代码的脚本文件来创建数据库呢
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
<Product Name='SQL app 1.0' Id='DB501C18-86C7-4D14-AEC0-86416A69ABDE' Language='1033' Codepage='1252'
Version='1.0.0' Manufacturer='ABC Ltd.'>
<Package Id='????????-????-????-????-????????????' Keywords='Installer' Description="SQL App 1.0 Installer"
Comments='Comment.' Manufacturer='ABC Ltd.' InstallerVersion='100'
Languages='1033' Compressed='yes' SummaryCodepage='1252' />
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' />
<User Id="MySQLUser" Name="[SQLUSER]" Password="[SQLUSERPASSWORD]"></User>
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='TestSQL'>
<Component Id="MySqlComponent" Guid="C50999A0-02FD-42d5-9F65-7375318DD328">
<SqlDatabase Id="MySqlDatabase" Database="MyDatabase" Server="[SQLSERVER]" Instance="[SQLINSTANCE]"
CreateOnInstall="yes" DropOnUninstall="yes" User="MySQLUser" ContinueOnError="yes">
<SqlScript Id="CreateDatabase" ExecuteOnInstall="yes" BinaryKey="CreateTablesBin"></SqlScript>
</SqlDatabase>
</Component>
</Directory>
</Directory>
</Directory>
<Binary Id="CreateTablesBin" src="CreateDatabase.sql"></Binary>
<Feature Id='Complete' Level='1' Description="Full" Title="Full Installation">
<ComponentRef Id='MySqlComponent' />
</Feature>
</Product>
</Wix>