sql-server - 从脚本恢复数据库
问题描述
我创建了一个小脚本来从备份中恢复数据库。脚本运行后显示
RESTORE DATABASE 在 1.568 秒(143.584 MB/秒)内成功处理了 28818 个页面。
我有更多代码来更改数据库,也更改了一些视图和 sp,但我收到以下错误;用户无权更改数据库“GreyGoo”,数据库不存在,或数据库未处于允许访问检查的状态。
我也注意到我在对象资源管理器中看不到数据库
这就是我用来从备份中恢复数据库的方法
- 如果数据库存在设置为单个用户
- 如果数据库存在删除数据库
- 运行以下脚本
RESTORE DATABASE GreyGoo FROM DISK = 'C:\Bkp\GreyGoo_backup_2020_03_02_180002_5403592.bak'
WITH
MOVE 'GreyGoo' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.mdf',
MOVE 'GreyGoo_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\GreyGoo.ldf',
REPLACE;
- 将 DB 设置为多用户和其他属性
那么问题是什么以及如何解决它,我目前正在 SQL Server 2008 上测试我的代码
谢谢
解决方案
在恢复过程中,您需要确保您的
- 登录名/权限是正确的。
- 如果另一个以前的同名数据库不存在,则将其删除。也许来自以前的尝试
- 您也可以像下面这样关闭恢复选项,恢复是默认设置
- 仅恢复文件列表
示例——MSDN
USE master;
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks2012_Backup is the name of the backup device.
RESTORE FILELISTONLY
FROM AdventureWorks2012_Backup;
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
FROM AdventureWorks2012_Backup
WITH RECOVERY,
MOVE 'AdventureWorks2012_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks2012_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf';
GO
推荐阅读
- python - 将 SQL 结果保存到 python 列表/元组中
- python - 为什么我会收到此错误?在 Windows 10 上安装 osmnx 可以做些什么?
- sql - SQL查询从1个表中选择并基于2列返回数据
- c - 为 C 程序指定在同一库中打开 Python 程序的路径的好方法是什么?
- c# - WPF XAML - 文本框的设计时间和可见性
- image - 矩阵的字典排序
- r - 从数据框中计算相似发音词的数量和名称
- reactjs - 如何在 React Native 中打开新屏幕
- python - 使用 MingW 在 Windows 上发布 PyGObject/GTK+ 应用程序
- c++ - 为什么我们需要关闭一个文件来完成一个文件的写入过程?