database - Wix:如何使用 SqlScript 创建数据库

标签 database wix

我需要使用 Wix 通过 SqlString 创建一个名为 MyDB 的简单数据库。下面是我的代码片段。对于行 (SQL="CREATE DATABASE MyDB"),我可以知道这是正确的吗,它会创建“MyDB”数据库吗?我已正确设置用户和服务器属性。但是,这允许安装但不创建数据库。任何人都可以指出错误或遗漏的地方吗?

<sql:SqlDatabase Id='SqlDatabase' Database='master' User='SQLUser' Server='[SQLSERVER]' 
              CreateOnInstall='no' DropOnUninstall='no' ContinueOnError='yes'>

              <sql:SqlString Id="InitialCreateDB" ExecuteOnInstall="no" ContinueOnError="yes"
                          SQL="CREATE DATABASE MyDB"/>
            </sql: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>

关于database - Wix:如何使用 SqlScript 创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6911255/

相关文章:

java - 在 hibernate 中过滤计算列? (拥有)

c# - Wix:从 C# 自定义操作传回属性

msbuild - 如何在 MSBuild 中使用团队构建属性?

c# - WiX 3.5.2030.0 CreateDatabase 使用 DTF 外部 UI 处理程序失败并显示 1603,在没有外部 UI 处理程序的情况下工作

java - 无法将表添加到 Room 数据库 - 日志中的异常显示 'expected' 表与 'found' 不同

database - 如何在 Blackberry 应用程序中包含 SQLite 数据库?

PHP PDO MYSQL -> 使用 PDO 类查询 - 选择具有相同名称字段的不同表

wix - 你如何卸载 wix 安装程序中的另一个程序?

c# - 使用 Wix 安装结束时添加多个复选框

sql - 如何在同一张表中以不同条件检索同一列两次?