首页/办公软件/内容

sqlserver连接带密码的access_mssql数据库

办公软件2023-07-09 阅读()
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。2018年9月25日,最新的微软Office Access 2019在微软Office 2019里发布。

   sql server 导入带密码的access数据

  如何实现将Access的数据的导入到SQL Server呢,相信网络上有很多教程来帮助大家了。但是,大家发现如果access文档使用了密码加密的话,就会发现网上所介绍的方法失灵了。下面将举例来说明。

  以下有数据库abc.mdb,表结构如下:student(id int,name char(10)),密码为test。先要将其导入到sql server当中,假如abc.mdb没有加密,则可以采用下面几种方法:

  sql server 导入、更新access的数据(无密码版)

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1.OpenRowSet方式
  SELECT * FROM OpenRowSet('Microsoft.Jet.OLEDB.4.0',';database=C:abc.mdb','select * from student where id=1')
  update OpenRowSet('microsoft.jet.oledb.4.0',';database=C:abc.mdb','select * from student where id=1') set name='张三'
2.OpenDataSource方式
  select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=C:abc.mdb')...student
  update OpenDataSource('microsoft.jet.oledb.4.0','Data Source=C:abc.mdb')...student set name='张三' WHERE id=1
3.链接服务器方式
  EXEC sp_addlinkedserver
     @server = N'serTest',
     @provider = N'Microsoft.Jet.OLEDB.4.0',
     @srvproduct = N'OLE DB Provider for Jet',
     @datasrc = N'C:abc.mdb';
  EXEC sp_addlinkedsrvlogin 'serTest'
  EXEC  sp_helpserver  
    --EXEC  sp_dropserver N'serTest'
  go
  UPDATE serTest...student SET name='张三' WHERE id=1
  SELECT * FROM serTest...student WHERE id=1

  很多时候我们的mdb数据库是加密的,那么如果我们仍采用上面的方法,会发现sql执行出错,该怎么办呢?

  我们首先查看下msdn中相关函数的定义:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
OPENROWSET
( { 'provider_name' , { 'datasource' ; 'user_id' ; 'password'
   (北联网教程,专业提供视频软件下载)

……