用 SQL 脚本将 Access 导入 MSSQL 2000/2005 方法
发布时间:2008-10-22 13:51:00
上次介绍了Access 导入 MSSQL 2000/2005 数据库工具,不过,在使用这个工具时还是有一些地方需要注意的,我把整个导入过程记录了下来,算是笔记吧,希望对其他人有所帮助。
由于CooSel2.0 CreateSQL这个工具相当不错,能够将Access的数据库表的结构转换成SQL Server的更加复杂的结构,也就是数据库的升迁,你不必担心由于Access的结构与SQL Server的不同而产生错误!因此,我们不需要做任何手工改动与设置,直接使用该工具生成SQL脚本后,放到SQL Server中执行查询即可。当然该工具还提供了生成ASP文件以及直接导入SQL Server方式,笔者推荐使用SQL脚本,这样便于修改脚本内容。
我想在SQL Server中执行SQL脚本应该就不用再说了吧,如果这个还不会,那你就应该在虚拟机里多操练操练,服务器可不是闹着玩的,等你熟悉了SQL Server的操作方式后,再看下面的内容。
我们尝试来分析一下使用CooSel2.0 CreateSQL生成的SQL脚本,通过修改,才能符合我们的需求(比如仅创建数据库而不添加用户)。我们现在创建一个测试数据名为data.mdb,添加2个表,并添加几个测试字段。
在脚本头部,我们看到这几行:
Create Database [data]
go
use [data]
go
显然,这里是在SQL Server中创建一个数据库,名为data,然后使用这个数据库。如果我们已经自行创建好了,可以把开头的2行去掉,只留下use这2行就可以了。
exec sp_addlogin 'data_login','123','data'
go
exec sp_adduser 'data_login','data_login','db_owner'
go
这里是创建SQL登录帐号,这些是在你用CooSel2.0 CreateSQL创建脚本时输入的,当然如果你不需要创建的话,可以随便输入,然后把这里几行删除。不过记得给你的用户添加映射。
--[data]:
CREATE TABLE [dbo].[data] (
[ID] integer IDENTITY (1,1) not null,
[字段1] nvarchar(255) null ,
[字段2] integer null
) ON [Primary]
go
–这里可能还有其他表
–[data]:
Alter TABLE [dbo].[data] WITH NOCHECK ADD CONSTRAINT [PK_data] Primary Key Clustered ([ID] ) ON [Primary]
go
–这里可能还有其他表
从这里开始就正式开始创建数据库中的表结构了,这些我们不需要改动,如果你已经创建好了结构,那么可以把这块也删除了。在Access数据库中有几个表,就会有几块这样的语句。
--[data]:
SET IDENTITY_INSERT [dbo].[data] ON
go
INSERT INTO [dbo].[data] ([ID],[字段1],[字段2])
SELECT [ID],[字段1],[字段2]
FROM OPENDATASOURCE(’Microsoft.Jet.OLEDB.4.0′,’Data Source=”C:\data.mdb”‘)…[data]
go
SET IDENTITY_INSERT [dbo].[data] Off
go
–这里可能还有其他表
这里是插入数据的地方,会读取Access数据库中每个表中的数据然后插入到SQL Server中的相应的表中。其中Data Source=你Access在硬盘中的位置,如果是虚拟主机的话,用个ASP的探针就能很容易看到自己站点所在目录了。
好了,一个完整的SQL脚本我们就全部分析完了,你可以根据你的情况来删除不需要的部分。
如果你在执行SQL脚本以后,出现如下错误:
SQL Server 2005:
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource'
的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用
'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL
Server 联机丛书中的 "外围应用配置器"。
那么说明你的SQL Server的Ad Hoc Distributed Queries没有开启,需要在你的SQL脚本顶部添加:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
再次执行你的SQL脚本,如果你是使用的最高权限帐号(Windwos模式或SA帐号),应该是成功的。
如果提示:
服务器: 消息 15247,级别 16,状态 1,过程 sp_configure,行 170
用户没有执行此操作的权限。
服务器: 消息 5812,级别 14,状态 1,行 1
您没有运行 RECONFIGURE 语句的权限。
服务器: 消息 15123,级别 16,状态 1,过程 sp_configure,行 79
配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。
SQL Server 2000提示:
已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。
说明你的帐号权限不够,需要SQL Server用户具用SystemAdministrators”服务器角色”。如果是虚拟主机,那么就麻烦你的空间商帮你做这些吧。


猜你喜欢
- 在我之前解释了flask如何支持多线程主要通过两个类来实现,LocalStack和Local,在Local中有两个属性,__storage_
- 很多人错误地认为ASP是简单、低效的代名词,认为ASP是低能的,不足挂齿的,也很简单,一学就会,一琢磨就精通。有人讲ASP不安全,写ASP的
- 小程序中英文混合排序问题在开发一个手机联系人列表的功能时,遇到需求是需要将联系人列表按照拼音顺序排序。而联系人列表是会出现中英文混合的情况。
- 目前已经有很多生成html的新闻系统,但是都是用的模板,本函数实现把asp页面产生的html代码保存成为一个html文件,这样就没有必要改动
- 在数据生产应用部门,取数分析是一个很常见的需求,实际上业务人员需求时刻变化,最高效的方式是让业务部门自己来取,减少不必要的重复劳动,一般情况
- 输入:[1.0000, -1.0000, 3.0000]课本中的标准差计算公式:按照上述公式计算:Numpy中的std计算:import n
- 文中用到了BeautifulSoup这个库, 目的是处理html文档分析的, 因为我只是提取了title的关键字,所以可以用正则表达式代替,
- 产生batch数据输入data中每个样本可以有多个特征,和一个标签,最好都是numpy.array格式。datas = [data1, da
- 我们在填写表单的时候,特别是输入密码的时候,经常看到实时显示密码强度的效果,那么这种效果如何通过我们的原生js实现呢?思路:1.密码通常是由
- MySQL表中的约束(constraint)为了保证数据的完整性,(数据的精确性和可靠性)SQL规范以约束的方式对表数据进行额外的条件限制,
- 1. 作用将类方法转换为类属性,可以用 . 直接获取属性值或者对属性进行赋值2.实现方式使用property类来实现,也可以使用proper
- 本文实例为大家分享了JavaScript实现扫雷小游戏的具体代码,供大家参考,具体内容如下工具:Sublime Text / Dreamwe
- 脚本内容代码如下:from mitmproxy import http, ctxfrom multiprocessing import Lo
- 本文实例讲述了Python实现的排列组合、破解密码算法。分享给大家供大家参考,具体如下:排列组合(破解密码)1.排列itertools.pe
- 如果我们知道一个静态文件的实际路径如:https://www.aspxhome.com/download/cidianwang.pdf,如果
- Python 代码库之Tuple如何append元素tuple不像array给我们提供了append函数,我们可以通过下面的方式添加t=[1
- Q. How can I restrict access to my SQL Server so that it only allows c
- 前言本文主要给大家介绍了关于Django自定义过滤器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:过滤器与函数d
- PyQt5+requests实现一个车票查询工具,供大家参考,具体内容如下结构图效果图思路1、search(QPushButton)点击信号
- 成天都要与样式打交道的朋友,相信对CSS选择符(CSS Selectors)都不会陌生。不过对于刚接触或者还不是很熟悉css的朋友来说,能够