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

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

ID:34708480

大小:54.40 KB

页数:5页

时间:2019-03-09

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

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

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.表名--导入示

3、例select*into表fromsrv_lnk.数据库名.dbo.表名go--后删除链接服务器execsp_dropserver'srv_lnk','droplogins'--如果是将一个数据库中的数据全部复制到另一个数据库,而且两个库结构完全一样的话,就用备份/恢复的方式:/*--将一个数据库完整复制成另一个数据库--*//*--调用示例execp_CopyDb@ddbname='test'--*/ifexists(select*fromdbo.sysobjectswhereid=object

4、_id(N'[dbo].[p_CopyDb]')andOBJECTPROPERTY(id,N'IsProcedure')=1)dropprocedure[dbo].[p_CopyDb]GOcreateprocp_CopyDb@sdbnamesysname='',--定义要复制的数据库名,默认为当前数据库@ddbnamesysname,--定义复制后生成的数据库名@overexistbit=1,--是否覆盖已经存在的数据库@killuserbit=1--是否关闭用户使用进程,仅@overexist=

5、1时有效asdeclare@sqlvarchar(8000),@bpathvarchar(8000),@rpathvarchar(8000)--得到要复制的数据库名ifisnull(@sdbname,'')=''set@sdbname=db_name()--得到临时备份数据目录及文件名5select@bpath=rtrim(reverse(filename))frommaster..sysfileswherename='master'select@bpath=substring(@bpath,ch

6、arindex('',@bpath)+1,8000),@bpath=reverse(substring(@bpath,charindex('',@bpath),8000))+'BACKUP'mailto:+@sdbname+%20_%20+convert(varchar,getdate(),112)+'_'+replace(convert(varchar,getdate(),108),':','')+'.bak'--生成数据库备份语句,进行数据库备份set@sql='backupdataba

7、semailto:%20+@sdbname+'tomailto:disk=%20%20%20+@bpath+'''withNOINIT'exec(@sql)--根据备份文件恢复成新的数据库(完成复制工作)set@sql='restoredatabasemailto:%20+@ddbname+'frommailto:disk=%20%20%20+@bpath++'withfile=1'+casewhen@overexist=1then',replace'else''end--得到数据库存放的默认目录

8、--得到SQL安装时设置的数据文件路径select@rpath=rtrim(reverse(filename))frommaster..sysfileswherename='master'select@rpath=reverse(substring(@rpath,charindex('',@rpath),8000))--添加移动逻辑文件的处理--从备份文件中获取逻辑文件名declare@lfnnvarchar(128),@tpchar(1),@iint--创建临时表,保存获取的信

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

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

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