十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“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数据库怎么远程查询并批量导入数据”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!