不同数据库之间复制表的数据的方法

不同数据库之间复制表的数据的方法

ID:34729937

大小:52.88 KB

页数:7页

时间:2019-03-10

不同数据库之间复制表的数据的方法_第1页
不同数据库之间复制表的数据的方法_第2页
不同数据库之间复制表的数据的方法_第3页
不同数据库之间复制表的数据的方法_第4页
不同数据库之间复制表的数据的方法_第5页
资源描述:

《不同数据库之间复制表的数据的方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、不同数据库之间复制表的数据的方法当表目标表存在时:insertinto目的数据库..表select*from源数据库..表当目标表不存在时:select*into目的数据库..表from源数据库..表--如果在不同的SQL之间:insertintoopenrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)select*from源数据库..表--或用链接服务器:----------------------------------------创建链接服务器----------------------------------

2、--execsp_addlinkedserver'srv_lnk','','SQLOLEDB','远程服务器名'execsp_addlinkedsrvlogin'srv_lnk','false',null,'sa','密码'execsp_serveroption'srv_lnk','rpcout','true'--这个允许调用链接服务器上的存储过程go--查询示例select*fromsrv_lnk.数据库名.dbo.表名--导入示例select*into表fromsrv_lnk.数据库名.dbo.表名go--后删除链接服务器execsp_dropserver'

3、srv_lnk','droplogins'--如果是将一个数据库中的数据全部复制到另一个数据库,而且两个库结构完全一样的话,就用备份/恢复的方式:/*--将一个数据库完整复制成另一个数据库--*//*--调用示例execp_CopyDb@ddbname='test'--*/ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_CopyDb]')andOBJECTPROPERTY(id,N'IsProcedure')=1)dropprocedure[dbo].[p_CopyDb]GOcreat

4、eprocp_CopyDb@sdbnamesysname='',--定义要复制的数据库名,默认为当前数据库@ddbnamesysname,--定义复制后生成的数据库名@overexistbit=1,--是否覆盖已经存在的数据库@killuserbit=1--是否关闭用户使用进程,仅@overexist=1时有效asdeclare@sqlvarchar(8000),@bpathvarchar(8000),@rpathvarchar(8000)--得到要复制的数据库名ifisnull(@sdbname,'')=''set@sdbname=db_name()--得到临

5、时备份数据目录及文件名select@bpath=rtrim(reverse(filename))frommaster..sysfileswherename='master'select@bpath=substring(@bpath,charindex('',@bpath)+1,8000),@bpath=reverse(substring(@bpath,charindex('',@bpath),8000))+'BACKUP'mailto:+@sdbname+%20_%20+convert(varchar,getdate(),112)+'_'+replace(

6、convert(varchar,getdate(),108),':','')+'.bak'--生成数据库备份语句,进行数据库备份set@sql='backupdatabasemailto:%20+@sdbname+'tomailto:disk=%20%20%20+@bpath+'''withNOINIT'exec(@sql)--根据备份文件恢复成新的数据库(完成复制工作)set@sql='restoredatabasemailto:%20+@ddbname+'frommailto:disk=%20%20%20+@bpath++'withfile=1'+casew

7、hen@overexist=1then',replace'else''end--得到数据库存放的默认目录--得到SQL安装时设置的数据文件路径select@rpath=rtrim(reverse(filename))frommaster..sysfileswherename='master'select@rpath=reverse(substring(@rpath,charindex('',@rpath),8000))--添加移动逻辑文件的处理--从备份文件中获取逻辑文件名declare@lfnnvarchar(128),@tpchar(1),@iint--创

8、建临时表,保存获取的信息

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。