我的电脑上没有SQL Server Management Studio。
我有一个数据库备份(SQL Server 2008 R2)。我的电脑上安装了Visual Studio 2010 Ultimate自带的SQL Server Express。
我该如何将这个备份还原到数据库并将其附加到SQL Server Express?
是否有不使用SQL Management Studio Express的解决方案?
我的电脑上没有SQL Server Management Studio。
我有一个数据库备份(SQL Server 2008 R2)。我的电脑上安装了Visual Studio 2010 Ultimate自带的SQL Server Express。
我该如何将这个备份还原到数据库并将其附加到SQL Server Express?
是否有不使用SQL Management Studio Express的解决方案?
RESTORE
语句,并使用sqlcmd
命令行工具运行它。RESTORE DATABASE YourDatabaseName
FROM DISK = N'(path to your BAK file)'
WITH FILE = 1,
MOVE N'(your DB name)' TO N'(your SQL path)database.MDF',
MOVE N'(your DB name)_LOG' TO N'(your SQL path)database_LOG.LDF',
NOUNLOAD,
REPLACE,
STATS = 10
GO
当然,还有一个BACKUP
命令,您可以类似地使用它 - MSDN Books Online会详细介绍语法!
虽然有点晚了,但希望对其他正在查看此内容的人有所帮助...
如果问题是在没有管理工具的情况下进行还原,则可以像marc_s已经指出的那样轻松地使用sqlcmd来解决。
但是,如果真正的问题是在SQL 2008上恢复2008 R2备份而不使用SSMS,则唯一的解决方案是使用第三方工具,该工具可以读取备份并生成用于创建模式和插入数据的脚本。
思路是在SQL 2008上创建空数据库,并使用第三方工具将其与使用2008 R2生成的备份进行比较。
我以前的工作中使用过ApexSQL Diff和ApexSQL Data Diff,取得了不错的成果,但也有来自Red Gate(SQL Compare)和Idera(Comparison toolset)的好工具。如果你在网上搜索,可能会找到更多....
免责声明:我与上述任何公司都没有关联......
BACKUP DATABASE [AdventureWorks] TO
DISK = N'\\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak'
WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
RESTORE DATABASE [AdventureWorksNew]
FROM DISK = N'\\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak'
WITH FILE = 1,
MOVE N'AdventureWorks_Data' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Data.mdf',
MOVE N'AdventureWorks_Log' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Log.ldf',
NOUNLOAD, STATS = 10
以下链接提供与marc_s类似的解决方案,而且更加深入。我能够成功地使用下面链接中提供的解决方案从备份文件创建新的数据库。
http://codeonaboat.wordpress.com/2012/02/16/sql-server-2008-creating-a-database-from-a-bak-file/
以下解决方案来自上述链接:"RESTORE DATABASE dbForSocialMigration FROM DISK = 'c:\DatabaseBackups\dev20120307.bak' WITH MOVE 'dbname' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration.mdf', MOVE 'dbname_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration_log.mdf'
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
是SQL Express通常存储其数据文件的目录。您可以通过从中选择数据库,右键单击并打开属性对话框,然后从左侧选择“文件”选项来查找数据库服务器使用的目录。
那应该可以解决问题,在那一点上,您应该能够访问由.bak文件填充的名为“dbForSocialMigration”的数据库中的所有表和数据。
"