还原SQL数据库部分表

还原SQL数据库部分表,第1张

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

请问大伙,能不能直接从SQL数据库备份文件中其中几个表?没积分了,谢谢大家,在线等

解析:

可以先新建数据库实例,建立相同名称数据库,再恢复到新实例,然后使用跨数据库复制:

sql 跨服务器复制分类:默认栏目

为了安全,经常要使用上双服务器,在双地区进行备份,以防止数据出错。有时我们要恢复部分表的数据,这时就需要利用sql的跨数据库的复制(当然可以利用程序转换)如何跨数据库复制一下例子可供参考。
select from OPENDATASOURCE('SQLOLEDB','Data Source=100128106;User ID=sa;Password=as')backserversdbo[usys-hotel]

create table #temptable (Id varchar(50),Status varchar(50),num numeric(18,0) identity not null)

insert into #temptable select Id,Status from OPENDATASOURCE('SQLOLEDB','Data Source=100128106;User ID=sa;Password=as')backserversdbo[usys-hotel]

select from #temptable

delete from #temptable

declare @i int

declare @Status varchar(50)

declare @Id varchar(50)

set @i=106

while @i<210

begin

select @i=@i 1

select @status=status from #temptable where num=@i

select @id=id from #temptable where num=@i

update [usys-hotel-info] set status=@status where id=@id

end

另外还有些方法没有用过:

先使用联结服务器:

EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'

exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

GO

然后你就可以如下:

select from 别名库名dbo表名

insert 库名dbo表名 select from 别名库名dbo表名

select into 库名dbo新表名 from 别名库名dbo表名

go

1、打开My SQL Workbench
2、点击database菜单,然后选择schema transfer wizard
3、点击下方的start wizard
4、选择源数据库服务器连接和目标数据库服务器连接
5、点击下方的test connectiton,测试两个连接是否正常,然后点击next
6、勾选要复制的数据库实例,然后点击start copy
7、系统显示复制进度,结束后点击next
8、点击finished,此时跨服务器的数据库实例复制就完成了

直接在执行器里运行sql语句的好像是没有的,可以用备份和还原命令语句,也能远程备份和还原的,在程序命令库里就能执行,windows和linux都可以。
备份:mysqldump -h 127001 -u root -p test1 > sql_baksql
还原:mysql -h 127002 -u root -p -P 3306 test1< sql_baksql


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10290724.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存