[英]How do I make a copy of an SQL Server database and connect to it?
我正在使用vb.NET 2013和SQL Server 2008R2。
我有这种情况要解决:
我有一个数据库“ DB1”。 我想在同一SQL服务器上用另一个名称“ DB2”创建此数据库的副本,然后使该数据库准备连接。
如何通过Vb.NET中的代码执行此操作?
查看此技术网链接以使用新文件名进行还原。
http://technet.microsoft.com/zh-cn/library/ms190447(v=sql.105).aspx 。
备份数据库一(DB1)。
验证备份是否有效。
获取正确的逻辑和物理文件名
使用move命令还原以创建两个数据库(DB2)。
将所有权更改为SA。 默认为创建数据库的SQL登录名
这是我在笔记本电脑上测试过的脚本。 备份的好处是无需停机。 如果您决定下线,复制数据文件并创建要附加的数据库,则会创建停机时间。
-- Sample database
USE AdventureWorks2012;
GO
-- 1 - Make a backup
BACKUP DATABASE AdventureWorks2012
TO DISK = 'C:\mssql\backup\AdventureWorks2012.Bak'
WITH FORMAT,
MEDIANAME = 'SQLServerBackups',
NAME = 'Full Backup of AdventureWorks2012';
GO
-- Use master
USE master
GO
-- 2 - Is the backup valid
RESTORE VERIFYONLY
FROM DISK = 'C:\mssql\backup\AdventureWorks2012.Bak';
GO
-- 3 - Check the logical / physical file names
RESTORE FILELISTONLY
FROM DISK = 'C:\mssql\backup\AdventureWorks2012.Bak';
GO
-- 4 - Restore the files change the location and name
RESTORE DATABASE Adv2012
FROM DISK = 'C:\mssql\backup\AdventureWorks2012.Bak'
WITH RECOVERY,
MOVE 'AdventureWorks2012_Data' TO 'c:\mssql\data\MyAdvWorks_Data.mdf',
MOVE 'AdventureWorks2012_Log' TO 'c:\mssql\log\MyAdvWorks_Data.ldf';
GO
-- 5 - Switch owner to system admin
ALTER AUTHORIZATION ON DATABASE::Adv2012 TO SA;
GO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.