如何制作SQL Server数据库的副本并连接到它?

时间:2014-03-17 18:18:08

标签: sql-server vb.net

我正在使用vb.net 2013和sql server 2008R2。

我有这种情况要解决:

我有一个数据库" DB1"。我想在同一个sql server上用另一个名字" DB2" ,并使此数据库准备好连接。

如何通过Vb.net的代码完成此操作?

1 个答案:

答案 0 :(得分:0)

使用新文件名查看此tech net链接以进行恢复。

http://technet.microsoft.com/en-us/library/ms190447(v=sql.105).aspx

1 - 备份数据库一(DB1)。

2 - 验证备份是否有效。

3 - 获取正确的逻辑和物理文件名

4 - 使用move命令恢复以创建数据库二(DB2)。

5 - 将所有权更改为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

祝你的TSQL冒险好运! Ĵ