在sqlserver中如何将一个存在的数据库内容(存储过程,表等)复制到另一个空数据库

时间:2022-07-21 04:27:43
如题:两个数据库名不同我想将a数据库里的一切内容复制到数据库b中,请列举几个最常用的方法

7 个解决方案

#1


备份-〉恢复

#2


备份,然后改名还原

#3


完全备份--还原--
比较稳妥一点

#4


引用 1 楼 jinjazz 的回复:
备份-〉恢复

或者復制mdf,ldf
然後附加

#5


1、分离->复制文件->附加
2、如上,备份,还原,然后改名
3、数据库复制
4、数据导入导出
5、生成数据库脚本,然后另一数据库执行

#6


--导出所有脚本(不包括数据信息):包括:存储过程、函数、表脚本。   
  --注意:   sql   server   2000   下需要sp3以上的补丁。才能正确运行。   
    
  Create       PROC       P_GetJenerateCurrentDBObjectsScript         
      @ServerName       varchar(20)='',   --要备份的服务器名称,不指定则备份当前服务器         
      @dbname       varchar(20)='',   --要备份的数据库名称,不指定则备份当前数据库         
      @Password       varchar(20)='',   --密码         
      @BackupPath       varchar(200)='D:\数据库脚本备份\'   --文件保存路径         
      As         
      Begin         
      declare       @Path           varchar(400),@Cmd       varchar(1000)         
      exec           master.dbo.xp_regread                         
                                                  'HKEY_LOCAL_MACHINE',                 
                                                  'SOFTWARE\Microsoft\MSSQLSERVER\setup',                 
                                                  'SQLPath',@Path           output                 
      set           @Path           =       ''''+replace(@Path,':\',':\"')+'"'           +           '\Upgrade\scptxfr.exe'                 
      set       @Cmd='master.dbo.xp_cmdshell       '+@Path         
            
      if       isnull(@ServerName,'')=''       set       @ServerName=@@ServerName         
      if       isnull(@dbname,'')=''       set       @dbname=DB_NAME()         
            
      --生成文件夹和目录         
      set       @Cmd=@Cmd+N'           /s       '+@ServerName+'       /d       '+@dbname+'       /p       '+@Password+'       /I       /f           '         
      set       @BackupPath='MD       '+@BackupPath+''+@dbname+''         
      exec       master..xp_cmdshell       @BackupPath         
      --生成数据库脚本         
      set       @Cmd=@Cmd+N''+REPLACE(@BackupPath,'MD','')+'\'+convert(varchar(10),getdate(),112)+'.sql'''         
      exec(@Cmd)         
      End         
      GO         
    
  --调用:   
  P_GetJenerateCurrentDBObjectsScript   '服务器','数据库','密码','D:\数据库脚本备份\'   
  

#7


用MDF文件附加

#1


备份-〉恢复

#2


备份,然后改名还原

#3


完全备份--还原--
比较稳妥一点

#4


引用 1 楼 jinjazz 的回复:
备份-〉恢复

或者復制mdf,ldf
然後附加

#5


1、分离->复制文件->附加
2、如上,备份,还原,然后改名
3、数据库复制
4、数据导入导出
5、生成数据库脚本,然后另一数据库执行

#6


--导出所有脚本(不包括数据信息):包括:存储过程、函数、表脚本。   
  --注意:   sql   server   2000   下需要sp3以上的补丁。才能正确运行。   
    
  Create       PROC       P_GetJenerateCurrentDBObjectsScript         
      @ServerName       varchar(20)='',   --要备份的服务器名称,不指定则备份当前服务器         
      @dbname       varchar(20)='',   --要备份的数据库名称,不指定则备份当前数据库         
      @Password       varchar(20)='',   --密码         
      @BackupPath       varchar(200)='D:\数据库脚本备份\'   --文件保存路径         
      As         
      Begin         
      declare       @Path           varchar(400),@Cmd       varchar(1000)         
      exec           master.dbo.xp_regread                         
                                                  'HKEY_LOCAL_MACHINE',                 
                                                  'SOFTWARE\Microsoft\MSSQLSERVER\setup',                 
                                                  'SQLPath',@Path           output                 
      set           @Path           =       ''''+replace(@Path,':\',':\"')+'"'           +           '\Upgrade\scptxfr.exe'                 
      set       @Cmd='master.dbo.xp_cmdshell       '+@Path         
            
      if       isnull(@ServerName,'')=''       set       @ServerName=@@ServerName         
      if       isnull(@dbname,'')=''       set       @dbname=DB_NAME()         
            
      --生成文件夹和目录         
      set       @Cmd=@Cmd+N'           /s       '+@ServerName+'       /d       '+@dbname+'       /p       '+@Password+'       /I       /f           '         
      set       @BackupPath='MD       '+@BackupPath+''+@dbname+''         
      exec       master..xp_cmdshell       @BackupPath         
      --生成数据库脚本         
      set       @Cmd=@Cmd+N''+REPLACE(@BackupPath,'MD','')+'\'+convert(varchar(10),getdate(),112)+'.sql'''         
      exec(@Cmd)         
      End         
      GO         
    
  --调用:   
  P_GetJenerateCurrentDBObjectsScript   '服务器','数据库','密码','D:\数据库脚本备份\'   
  

#7


用MDF文件附加