Расширяя ответ Яна, можно использовать очень простой синтаксис, если вы используете расширение Sql - вам нужно включить MDF и LDF (файлы данных + журналов) для вашей базы данных SQL, но затем присоедините их, ссылаясь на то же имя файла.
В следующем предполагается, что SQL Server Express будет установлен локально под экземпляром localhost \ sqlexpress
<Property Id="SQLINSTANCE" Value="SQLEXPRESS" />
<Property Id="SQLSERVER" Value="LOCALHOST" />
<Property Id="DATA_FOLDER" Value="C:\Program Files\Microsoft SQL Server\MSSQL11.SQLExpress\MSSQL\DATA\" />
<Component Id="Sql_Database_Deploy" NeverOverwrite="yes" Directory="[DATA_FOLDER]">
<File Source="Northwind.mdf"></File>
<File Source="Northwind)log.ldf"></File>
<sql:SqlDatabase Id="SqlDatabase" Database="Northwind" Server="[SQLSERVER]" Instance="[SQLINSTANCE]" CreateOnInstall="yes" DropOnUninstall="yes">
<sql:SqlFileSpec Filename="[DATA_FOLDER]Northwind.mdf" Id="Northwind_SqlFileSpec"/>
<sql:SqlLogFileSpec Filename="[DATA_FOLDER]Northwind_log.ldf" Id="Northwind_SqlLogFileSpec"/>
</sql:SqlDatabase>
</Component>
Для краткости я исключил аутентификацию из этого примера, но вы также можете указать пользователя Sql, который будет использоваться для команды, используя элемент User и ссылаться на идентификатор элемента User в SqlDatabase. атрибут.