我有一组需要在安装期间运行的数据库脚本。我有一个 UI 屏幕,用户可以选择服务器、提供凭据,然后选择目标数据库。我需要做的是将大部分脚本安装到用户选择的目标数据库中,但有些脚本需要转到主数据库。我已经尝试在网上搜索答案,但我还没有真正找到任何告诉我如何做到这一点的东西。如果有人有关于如何完成的文章或建议,我将不胜感激。
谢谢
我有一组需要在安装期间运行的数据库脚本。我有一个 UI 屏幕,用户可以选择服务器、提供凭据,然后选择目标数据库。我需要做的是将大部分脚本安装到用户选择的目标数据库中,但有些脚本需要转到主数据库。我已经尝试在网上搜索答案,但我还没有真正找到任何告诉我如何做到这一点的东西。如果有人有关于如何完成的文章或建议,我将不胜感激。
谢谢
您可以声明两个 SqlDatabase 节点,一个用于必须运行脚本的每个数据库:
<Binary Id="SqlScriptBinary1" SourceFile="script1.sql" />
<Binary Id="SqlScriptBinary2" SourceFile="script2.sql" />
<Component Id='SqlComponent.Sql1' Guid='YOUR-GUID-HERE' KeyPath='yes'>
<sql:SqlDatabase Id='Database1' Database='[DATABASE_NAME1]' Server='[DATABASE_SERVER]'
CreateOnInstall='no'
DropOnInstall='no' DropOnReinstall='no' DropOnUninstall='no'
ContinueOnError='no'>
<sql:SqlScript Id='SqlScript1' BinaryKey='SqlScriptBinary1' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
</Component>
<Component Id='SqlComponent.Sql2' Guid='YOUR-GUID-HERE' KeyPath='yes'>
<sql:SqlDatabase Id='Database2' Database='[DATABASE_NAME2]' Server='[DATABASE_SERVER]' CreateOnInstall='no'
DropOnUninstall='no' DropOnInstall='no' DropOnReinstall='no' ContinueOnError='no'>
<sql:SqlScript Id='SqlScript2' BinaryKey='SqlScriptBinary2' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
</Component>
进行快速搜索,您会找到可能对您有帮助的文章,例如这篇文章。