如果我有一个数据库名为test,那我怎样用程序的方式将这个数据库复制成test2呢?

解决方案 »

  1.   

    不可以用存储过程来做吗?
    先生成表test的SQL脚本(企业管理器)。
    在存储过程中,执行这些教本,创建表test2。
    最后执行一句:insert into test2 select * from test.将数据也复制进去!
    ------
    没用实际做过!估计这样可以! 你试试看吧!!!
      

  2.   

    在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中当然也包括对数据库的备份和恢复。SQLDMO由Microsoft SQL Server自带的SQLDMO.dll提供,由于SQLDMO.dll是一个COM对象,所以大家在用之前必须在.NET项目中添加对它的引用,如下图所示:下面是用C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类:using System;namespace DbService{/// <summary>/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复/// </summary>public sealed class DbOper{/// <summary>/// DbOper类的构造函数/// </summary>private DbOper(){}/// <summary>/// 数据库备份/// </summary>public static void DbBackup(){SQLDMO.Backup oBackup = new SQLDMO.BackupClass();SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();try{oSQLServer.LoginSecure = false;oSQLServer.Connect("localhost", "sa", "1234");oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;oBackup.Database = "Northwind";oBackup.Files = @"d:\Northwind.bak";oBackup.BackupSetName = "Northwind";oBackup.BackupSetDescription = "数据库备份";oBackup.Initialize = true;oBackup.SQLBackup(oSQLServer);}catch{throw;}finally{oSQLServer.DisConnect();}}/// <summary>/// 数据库恢复/// </summary>public static void DbRestore(){SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();try{oSQLServer.LoginSecure = false;oSQLServer.Connect("localhost", "sa", "1234");oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;oRestore.Database = "Northwind";oRestore.Files = @"d:\Northwind.bak";oRestore.FileNumber = 1;oRestore.ReplaceDatabase = true;oRestore.SQLRestore(oSQLServer);}catch{throw;}finally{oSQLServer.DisConnect();}}}}