怎么把数据库A的所用内容复制到数据库B去

zhyx21century 2003-09-27 05:15:16
怎么把数据库A的所用内容(主外键、存储、视图、数据等)全部
复制到数据库B去????
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
snailili 2003-09-28
  • 打赏
  • 举报
回复
导出和导入,选择第三项“在SQL Server数据库之间复制对象和数据”就ok
double22822 2003-09-27
  • 打赏
  • 举报
回复
用数据库的所用任务中的 导出和导入都可以,稍等片刻就ok.
zjcxc 2003-09-27
  • 打赏
  • 举报
回复
在查询分析器中执行下面的语句就行了:

--备份数据库a
backup database a to disk='c:\a.bak'

--将备份文件恢复成数据库B
declare @bkfile varchar(1000),@redb varchar(200),@overexist bit
select @bkfile='c:\a.bak' --定义要恢复的备份文件名
,@redb='b' --定义恢复后的数据库名
,@overexist=0 --是否覆盖已经存在的数据库

--从备份文件中获取逻辑文件名和物理文件名
declare @logfn1 varchar(250),@logfn2 varchar(250)
declare @phyfn1 varchar(1000),@phyfn2 varchar(1000)

--创建临时表,保存获取的信息
create table #tb(lgfn varchar(250),pyfn varchar(1000),type char(1),fg varchar(200),size bigint,maxsize bigint)

--从备份文件中获取信息
insert into #tb
exec('restore filelistonly
from disk='''+@bkfile+'''')

--将信息保存到变量中
select @logfn1=lgfn,@phyfn1=pyfn from #tb where type='D'
select @logfn2=lgfn,@phyfn2=pyfn from #tb where type='L'

--删除临时表
drop table #tb

--显示获取的信息
select @logfn1 as 逻辑数据文件名,@phyfn1 as 物理数据文件名
union all
select @logfn2 as 逻辑日志文件名,@phyfn2 as 物理日志文件名

--生成恢复的语句
declare @sql varchar(8000)

--得到SQL安装时的数据文件路径
select @phyfn1=rtrim(reverse(filename)) from master..sysfiles where name='master'

select @phyfn1=reverse(substring(@phyfn1,charindex('\',@phyfn1),8000))

--生成数据恢复语句,将数据库恢复到SQL数据目录下
set @sql='restore database '+@redb
+' from disk='''+@bkfile+''''
+' with move '''+@logfn1+''' to '''
+@phyfn1+@redb+'.mdf'',move '''
+@logfn2+''' to '''+@phyfn1+@redb+'.ldf'''
+case @overexist when 1 then ',replace' else '' end
exec(@sql)
go

--删除备份文件
exec master..xp_cmdshell 'del c:\a.bak'
yujohny 2003-09-27
  • 打赏
  • 举报
回复
方法1:copy数据库A的MDF、LDF文件到另外一个文件夹
然后再企业管理器中附加数据库为B,
方法2:备份A的数据库,然后还原为B库

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧