零度zero

导航

sqlserver2014 数据线上导入 sqlserver 2008的思路

背景: 要将dbf格式的数据 导入2008数据库,试了很多办法,无果。

 

解决方法: 之前有过dbf导入2014版的数据库经验,所以想先导入2014库,再用2014导入2008 方法。

 

  1. 通过openrowset函数读取dbf文件
    • 开启功能
    • exec sp_configure 'show advanced options',1
      reconfigure
      exec sp_configure 'Ad Hoc Distributed Queries',1
      reconfigure
      使用完毕后,记得一定要要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句

      exec sp_configure 'Ad Hoc Distributed Queries',0
      reconfigure
      exec sp_configure 'show advanced options',0
      reconfigure 

    • select  *  from openrowset('Microsoft.ACE.OLEDB.12.0','dBase IV;DATABASE=E:\客户\西工大\','select * from [rjz.dbf]')
    • 这步可能需要安装Microsoft.ACE.OLEDB.12.0,有相应安装包,并且位数要对,32位对应office 32位
  2. 建立链接服务器

    --创建链接服务器

EXEC sp_addlinkedserver 
@server='LINKED_SERVER_TEST2',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.88.6,11433'--数据源
GO

--创建登录名和密码
EXEC sys.sp_addlinkedsrvlogin
@rmtsrvname = 'LINKED_SERVER_TEST2', -- 被访问的服务器别名
@useself = 'false',
@locallogin = NULL,
@rmtuser = 'sa', -- 数据源登录名
@rmtpassword = 'psd123456' -- 数据源登录密码
GO

--设置数据可以访问
EXEC sys.sp_serveroption
@server = 'LINKED_SERVER_TEST2', 
@optname = 'data access',
@optvalue = N'true'
GO

 

  3. 通过链接服务器插入

    insert into  [LINKED_SERVER_TEST2].yhdz.yhdz_jz  select  *  from openrowset('Microsoft.ACE.OLEDB.12.0','dBase IV;DATABASE=E:\客户\西工大\','select * from [rjz.dbf]')

         有几个问题需要记录:

    a.源表列的值有null值,插入报错,用isnull处理

    b.目标表有自增列,显示去掉自增不好使。想到方法,先在目的库里建一个相同结构表,没有自增。用上面语句插入数据,在从这个表插入到目的表。     

 

--创建链接服务器
EXEC sp_addlinkedserver 
@server='LINKED_SERVER_TEST2',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.88.6,11433'--数据源
GO

--创建登录名和密码
EXEC sys.sp_addlinkedsrvlogin
@rmtsrvname = 'LINKED_SERVER_TEST2', -- 被访问的服务器别名
@useself = 'false',
@locallogin = NULL,
@rmtuser = 'sa', -- 数据源登录名
@rmtpassword = 'psd123456' -- 数据源登录密码
GO

--设置数据可以访问
EXEC sys.sp_serveroption
@server = 'LINKED_SERVER_TEST2', 
@optname = 'data access',
@optvalue = N'true'
GO

posted on 2022-03-17 21:05  零度zero  阅读(513)  评论(0编辑  收藏  举报