CSDN朋友问题回复:

有个ACCESS数据库文件在本机,机器上的OFFICE套件已经卸载,ACCESS没有用户名和密码,如何用MSSQLServer来查询和修改其文件内容?

比如ACCESS物理文件是存放在D盘根目录下的home.mdb,其中包含表'帐户'

一ACCESS数据源查询

方式一:链接服务器

--1 新建链接服务器

EXEC sp_addlinkedserver 'clA',  --名称自己起

'ACCESS',   --数据源产品为access

'Microsoft.Jet.OLEDB.4.0',    --数据源OLEDB

'D:/home.mdb' --access数据文件物理路径

--命令已成功完成。

--2.1 利用OPENQUERY函数查询ACCESS数据库

SELECT top 3 *

FROM OPENQUERY(clA, 'SELECT * FROM 帐户')

Go

--result:

AccountID   AccountNumber                                     AccountName                                        AccountTypeID

----------- -------------------------------------------------- -------------------------------------------------- -------------

1           1001                                               房租费                                               1

2           1002                                               交通费                                               1

3           1003                                               电费                                                1

(3 行受影响)

--2.2 直接查询

select * from clA...帐户

--result:

--结果与.1查询结果一致。

方式二:使用OLE DB 连接并访问远程数据的一次性的临时方法

--更改数据库高级配置选项

/*

sp_configure 'show advanced options',1

reconfigure

sp_configure 'Ad Hoc Distributed Queries',1

reconfigure

*/

--查询ACCESS数据库,table为帐户.

SELECT top 3 *

FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'D:/home.mdb';'admin';'',帐户)

GO

--result:

--结果与.1查询结果一致。

方式三:使用OPENDATASOURCE 连接并访问远程数据的一次性的临时方法

select top 3 *

from OPENDATASOURCE ( 'Microsoft.Jet.OLEDB.4.0'

,'Data Source="D:/home.mdb";User ID=Admin;Password=;')...帐户

--result:

--结果与.1查询结果一致。

总结一:对于ACCESS本地数据源的读取,可以用以上三种方式的任意一种。当mdb存在用户名和密码时,

方式一需要添加远程链接登录名,比如执行如下脚本exec sp_addlinkedsrvlogin 'clA','false',NULL,'用户名','用户密码';

方式二和方式三则分别在'admin';''和User ID=Admin;Password=中输入相应的密码,这里默认用户是admin。

二ACCESS数据源修改

/*

对于数据源的i/u/d类型操作,建议使用远程链接服务器的方式进行(即.1的方式)。

*/

--举例如下:

update clA...帐户set AccountNumber=10010 where AccountNumber=1001 and AccountID = 1

--result:

(1 行受影响)

三发散知识点:

Q:为何对于非MSSQL数据源的i/u/d操作,通常都建议在远程链接服务器方式下进行呢?

A:远程链接服务器是指通过sp_addlinkedserver搭建数据源链接进行访问的一种方式,通常用于长期频繁的数据源的s/i/u/d操作,

相当于直接进行表操作。对于OPENROWSET和OPENDATASOURCE方式通常是进行一次性的应用操作,除了安全性等原因,它们无法进行

安全管理以及查询目录信息的功能。

Q:如果ACCESS不在本机,还可以用上述方式查询吗?

A:变化一下思路,将ACCESS在异地的文件转换为本机。比如home.mdb文件是在.168.1.1机器上,则我们可以使用

//192.168.1.1//共享文件夹/home.mdb形式,当然前提是设置了共享文件夹;另外还可以尝试打开默认共享,比如

//192.168.1.1/D$/home.mdb。当然任何想法和思路都要以适合应用为前提,简单便捷安全为前提。这里仅提供思路,

不表示该方式一定可以实现,因为涉及面不仅仅是数据库方面,还涉及到网络共享等。

在MSSQL中对ACCESS文件操作方式汇总的更多相关文章

  1. C#中实现excel文件批量导入access数据表中

    一 .界面简单设计如下: 二 .代码如下: using System; using System.Collections.Generic; using System.ComponentModel; u ...

  2. [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句

    LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...

  3. 第9.12节 Python中其他文件操作方式

    一. 引言 本章老猿主要介绍了Python 内置io模块的文件操作相关功能,其实除了内置io模块可以进行文件操作外,Python的不同模块还提供了多种文件操作方式,下面简单将这些模块和方法介绍一下. ...

  4. Microsoft.ACE.OLEDB.12.0 及其在 MSSQL中的使用

    1.Microsoft.ACE.OLEDB.12.0 简介 就是一个数据访问接口,用于在office文件和非office应用程序间传输数据.例如 Microsoft Office Access 201 ...

  5. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  6. mac下查看.mobileprovision文件及钥匙串中证书.cer文件

    mac下查看.mobileprovision文件及钥匙串中证书.cer文件 一. mobileprovision文件查看 xxx.mobileprovision是ios开发中的设备描述文件,里面有证书 ...

  7. C++读取文件夹中所有的文件或者是特定后缀的文件

    由于经常有读取一个文件夹中的很多随机编号的文件,很多时候需要读取某些特定格式的所有文件. 下面的代码可以读取指定文件家中的所有文件和文件夹中格式为jpg的文件 参考: http://www.2cto. ...

  8. 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据

    开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...

  9. Linux中如何查看文件的最初创建时间

    查看 一个文件的 最初创建时间: Linux中如何查看文件的最初创建时间  linux     目前Linux没有直接查看创建文件的命令,你只能通过文件是否被修改过来进行判断. //查看代码stat  ...

随机推荐

  1. Hbase can't get locations问题

    2016-11-08 22:21:16,875 ERROR [main-SendThread(ht-lxfx-01:24002)] client.ZooKeeperSaslClient: An err ...

  2. Serenity框架官方文档翻译3.1(教程)

    3.教程 3.1教程: Movie Database 我们来用Serenity创建一个和IMDB相似的编辑界面的站点. 你能在下面的站点找到教程的源代码: https://github.com/vol ...

  3. ExtJS学习之路第二步:Ext.Component 和 Ext.dom.Element 的区别

    让我们来初步的探讨下Ext.Component和Ext.Element的区别. jQuery偏重于DOM元素的操作 1.每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的D ...

  4. sql数据库批量替换dedecms内容关键字

    之前写了一篇dedecms后台批量替换文章中的关键词,这边我们介绍一下用sql数据库批量替换dedecms内容关键字,当然要求你对数据库比较熟悉,修改前请自行做好备份. 1.更改文章中的内容 upda ...

  5. macOSX 访问 win7共享文件

    macOSX 访问 win7共享文件 macOSX 访问 win7共享文件 2014年1月8日星期三 开年的第一篇写下自己使用macos中遇到的问题.为后来初学者提供一些浅薄经验. 第一步:WINDO ...

  6. undefined与null的区别

    最近在默默的看面试题,其中有一个题目就是“undefined和null的区别”,突然意识到自己从未关注过这个问题,心中莫名有种急躁的感觉,百度一下发现阮大神的一篇文章(http://www.ruany ...

  7. 淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(五)

    我们现在对上一节中的DEMO进行改进,在服务中开启线程来执行. package com.example.service; import android.app.Service; import andr ...

  8. Window_搭建SVN服务器

    http://wenku.baidu.com/link?url=614FLi_VlhiJpyG5bq8JcwFBHroMjsV3FvBDzyyn0snZ85jbWx7xh-RPJdH7stxlgM9i ...

  9. ios反射

    http://www.cr173.com/html/18677_1.html 1.反射获取类属性名和属性类型 unsigned ; objc_property_t *properties = clas ...

  10. POJ 矩阵相乘 (随机化算法-舍伍德(Sherwood))

    周三的算法课,主要讲了随机化算法,介绍了拉斯维加斯算法,简单的理解了为什么要用随机化算法,随机化算法有什么好处. 在处理8皇后问题的时候,穷举法是最费时的,回朔比穷举好点,而当数据量比较大的时候,如1 ...