sql-server – WiX:数据库还原不会还原表和记录
发布时间:2020-12-12 06:59:50 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试使用WiX还原备份数据库文件,并且已创建数据库但未恢复任何表和数据.它似乎只是创建数据库而不做任何其他事情.不确定这是否与WiX有关或与MSSQL使用有关.这是WiX XML: Component Id="sql_backup_restore" Guid="8C95F258-7AB7-4A3A-A0CD-438FC61D45C
我正在尝试使用WiX还原备份数据库文件,并且已创建数据库但未恢复任何表和数据.它似乎只是创建数据库而不做任何其他事情.不确定这是否与WiX有关或与MSSQL使用有关.这是WiX
XML:
<Component Id="sql_backup_restore" Guid="8C95F258-7AB7-4A3A-A0CD-438FC61D45CC"> <CreateFolder Directory="javaaaanew_dir"/> <sql:SqlDatabase Id="aaanew3_db" Server="[MSSQLSERVER]" Database="master" ConfirmOverwrite="yes" ContinueOnError="yes" DropOnReinstall="no" DropOnInstall="no" DropOnUninstall="no" CreateOnInstall="yes" CreateOnReinstall="no" CreateOnUninstall="no"> <!-- restore blankaaa database --> <sql:SqlString Id="attach_db" ExecuteOnInstall ="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="yes" Sequence="1" SQL="RESTORE DATABASE blankaaa FROM DISK = '[blankaaaBAK]' WITH RECOVERY;" /> <!-- rename blankaaa to aaanew3 --> <sql:SqlString Id="alter_db_name" ExecuteOnInstall ="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="yes" Sequence="2" SQL="USE master;GO;ALTER DATABASE blankaaa Modify Name = 'aaanew3' GO;" /> <!-- should fail here if preexisting database? --> <!-- change aaanew3 dbowner to 'sa' --> <sql:SqlString Id="alter_db_owner" ExecuteOnInstall ="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="yes" Sequence="3" SQL="ALTER AUTHORIZATION ON DATABASE::aaanew3 TO sa;" /> <!-- add user 'sa' to database security? --> <sql:SqlString Id="alter_db_sa" ExecuteOnInstall ="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="yes" Sequence="4" SQL="USE [aaanew3];GO;CREATE USER [sa] FOR LOGIN [sa];GO;" /> <!-- add user mapping for 'sa' on aaanew3 with schema 'dbo' --> <sql:SqlString Id="alter_db_schema" ExecuteOnInstall ="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="yes" Sequence="5" SQL="USE [aaanew3];GO;ALTER USER [sa] WITH DEFAULT_SCHEMA=[dbo];GO;" /> </sql:SqlDatabase> </Component> 我也试过“WITH RECOVERY”并在方括号周围使用转义序列: <sql:SqlString Id="attach_db" ExecuteOnInstall ="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="yes" Sequence="1" SQL="RESTORE DATABASE blankaaa FROM DISK = '[[]blankaaaBAK[]]' WITH RECOVERY;" /> 在文档中看起来不太清楚这种做法的正确方法. 解决方法而不是尝试引用数据库文件的wix名称,我使用以下内容:SQL="RESTORE DATABASE blankaaa FROM DISK = '[INSTALLFOLDER]javaaaanewblankaaa.bak' WITH RECOVERY" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – Sql Server Management Studio 2008突然变得
- sql-server – 删除SQL Server中LOB数据的性能
- 数据库设计 – 与Facebook相似的通知系统的数据库模式
- sqlserver for linux自动备份数据库脚本
- sql – 如何检查oracle中的所有字段是否都是唯一的?
- SQLServer 存储过程中不拼接SQL字符串实现多条件查询
- SQLServerException: 到主机的TCP/IP 连接失败解决办法
- 深入C++ string.find()函数的用法总结
- sql-server – 如何使passthrough / passthru查询可编辑?
- 目前,所有我的SQL请求显示“System.ComponentModel.Win32Ex