SQLServer数据库怎么远程查询并批量导入数据

本篇内容主要讲解“SQLServer数据库怎么远程查询并批量导入数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLServer数据库怎么远程查询并批量导入数据”吧!

成都创新互联专业为企业提供宜章网站建设、宜章做网站、宜章网站设计、宜章网站制作等企业网站建设、网页设计与制作、宜章企业网站模板建站服务,10年宜章做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

SQLServer数据库远程查询并批量导入数据的方法有哪些

应用背景:

两个数据库的表结构相同,但表名前缀不一样,现要保持原有的数据表的ID导过来不变。用数据库批量导入/导出工具行不通,只能自己写SQL语句。奈何有180多个表,手工写肯定是累S个人。

解决办法:

先用OpenDataSource远程连接服务器,然后执行插入语句可行。其语句如下:

truncatetableActUserSETIDENTITY_INSERTActUseroninsertintoActUser([ID],[PassWord],[UserName])select[ID],[PassWord],[UserName]fromopendatasource('SQLOLEDB','datasource=DBSERVERIP;uid=sa;password=sa').TEST.dbo.ActUserSETIDENTITY_INSERTActUseroff

SQLServer数据库远程查询并批量导入数据的方法有哪些

然后我想到用游标结合sysobjects和syscolumns来实现自动生成这样的语句,其代码如下:

declaremycursorcursorforselect[id],[name]fromdbo.sysobjectswheretype='U'openmycursordeclare@tablenamesysnamedeclare@tableidsysnamefetchnextfrommycursorinto@tableid,@tablename--获取表名while(@@fetch_status=0)beginprint'--['+@tablename+']'--拼凑字段,将行转为字符串--DECLARE@fieldsvarchar(8000)set@fields=''SELECT@fields=''+@fields+'],['+nameFROMsyscolumnsWHEREid=object_id(@tablename)ORDERBYcolidset@fields='['+STUFF(@fields,1,3,'')+']'--拼凑字段End----print@fields/*******避免因字段过长而导致截断情形********/print'truncatetable'+@tablename--清理数据print'SETIDENTITY_INSERT'+@tablename+'on'--可使自增长列转为可插入数据,不用重新生成IDprint'insertinto'+@tablename+'('print@fieldsprint')select'print@fieldsprint'fromopendatasource('+'''SQLOLEDB'',''datasource=DBServerIP;uid=sa;password=sa'').TEST.dbo.'+replace(@tablename,'Wait_','Has_')print'SETIDENTITY_INSERT'+@tablename+'off'printchar(13)--换行fetchnextfrommycursorinto@tableid,@tablenameendclosemycursordeallocatemycursor

将生成的SQL语句放到查询分析器里执行一下,生成SQL语句,然后执行一下,就可以成功地批量导入数据了。

到此,相信大家对“SQLServer数据库怎么远程查询并批量导入数据”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

分享标题:SQLServer数据库怎么远程查询并批量导入数据
网页地址:https://www.cdcxhl.com/article12/gpjjdc.html

成都网站建设公司_创新互联,为您提供软件开发品牌网站建设品牌网站设计手机网站建设App设计网站收录

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计