请问:用存储过程将SQL SERVER数据转化为ACCESS数据库,如何做呢?

kelly_leecn 2001-11-28 02:04:59
我想写一个存储过程将SQL SERVER中的数据转化为ACCESS数据库,实际上应该是在存储过程中如何打开ACCESS数据库的问题,是吧,那为好心人路过,看一看.100够不够?
但如何做呢?
...全文
188 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
kelly_leecn 2001-12-05
  • 打赏
  • 举报
回复
有人在吗?
kelly_leecn 2001-12-03
  • 打赏
  • 举报
回复
我很急,哪位帮一下忙
kelly_leecn 2001-12-03
  • 打赏
  • 举报
回复
谢谢各位,现在还有另外一个问题,我连接的是ACCESS库那么我写了下面的一个简单的查询,但总是报错"Could not process object 'select * from ACC1'. The OLE DB provider 'Microsoft.Jet.OLEDB.4.0' indicates that the object has no columns."
我的语句是select * from openquery(ACCServer,'select * from ACC1'),请指教,马上给分
kelly_leecn 2001-11-30
  • 打赏
  • 举报
回复
我现在建立LINKSERVER就有问题,请看我是如何建的.
1.在SQL SERVER 中进入SECURITY
2.进入linked servers
3.单击右键选择New Linker server
4.进入设置窗口.选OTHER DATA SOURCE
LINKED SERVER : 填入ACCSERVER
PROVIDER DATA NAME: 选Microsoft Jet 4.0 OLEDB provider
Product name :
Data souce : 填入c:\test.mdb
PROVIDER :
5.单击确定后.进入ACCSERVER,双击TABLE则出现错误如下
Error 7399: ole provider 'microsoft.jet.oledb.4.0' reported an error.
帮我帮到底,解决一下.分会来的.
mmzxg 2001-11-30
  • 打赏
  • 举报
回复
gzgz
pxq 2001-11-30
  • 打赏
  • 举报
回复
就是 bluepower2008(蓝色力量) 说的
@server = 'ACCServer', --服务器名称,机器名称
@provider = 'Microsoft.Jet.OLEDB.4.0', --服务提供名称(照写就可以了)
@srvproduct = 'OLE DB Provider for Jet', --(照写就可以了)
@datasrc = 'C:\acc.mdb' --数据源(文件名)
kelly_leecn 2001-11-30
  • 打赏
  • 举报
回复
我在创建LINKSERVER时遇到了一点问题,这几项该如何填,以ACCESS为例,该ACCESS库在WIN98的电脑上C:\test.mdb,电脑名为Com.(假如我用OLE)
1.provider name
2.product name
3.data source
4.provider
谢谢
pxq 2001-11-30
  • 打赏
  • 举报
回复
EXEC master..sp_addlinkedserver
@server = 'ACCServer',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\test.mdb'
直接运行上述存储过程。
在linked servers,就可以看见刚才建立的linked servers。




kelly_leecn 2001-11-30
  • 打赏
  • 举报
回复
还是不行
pxq 2001-11-30
  • 打赏
  • 举报
回复
Product name :应该是OLE DB Provider for Jet


Corny 2001-11-29
  • 打赏
  • 举报
回复
用数据导出工具,保存脚本到文件中,在适当时候执行脚本
kelly_leecn 2001-11-29
  • 打赏
  • 举报
回复
To: pxq(风轻轻地吹) 
Opendatasource在SQL7.0中能被支持吗?我调试通不过.另外,在你的回复帖子里 aa表示什么?可不可以详细一点解释你的帖子或给我一个例子!谢谢你!
kelly_leecn 2001-11-29
  • 打赏
  • 举报
回复
OK,链接服务器,我没有用过,不过今天在你这里开了眼界,老兄这里引用的ACCServer要在哪里创建呢?谢谢你的帮助.分我一定会送上.我的E_MAIL是kelly_leecn@yahoo.com.cn
bluepower2008 2001-11-29
  • 打赏
  • 举报
回复
sorry,犯了个低级错误,values关键字应该去掉。
insert into OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db1.mdb;Persist Security Info=False')...ACC1
(m1,m2)
select a1,b1 from #temp1

如果以上方法不行,我建议还是使用链接服务器。
EXEC master..sp_addlinkedserver
@server = 'ACCServer',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\acc.mdb'
insert into ACCServer...ACC1 (m1,m2)
select a1,b1 from #temp1

insert into ACCServer...ACC2 (n1,n2)
select a2,b2 from #temp1

EXEC master..sp_dropserver 'ACCServer'



bluepower2008 2001-11-29
  • 打赏
  • 举报
回复
都说到这一步了,应该很容易了。
insert into OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db1.mdb;Persist Security Info=False')...ACC1
values (m1,m2)
select a1,b1 from #temp1

insert into OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db1.mdb;Persist Security Info=False')...ACC1
values (n1,n2)
select a2,b2 from #temp1

不过以上语句没有经过测试,不知对不对,你自己试试吧。
kelly_leecn 2001-11-29
  • 打赏
  • 举报
回复
To: pxq(风轻轻地吹) 

SQL Sever 库表结构
表a 字段 A1,A2,A3...
表b 字段 B1,B2,B3...
ACCESS库表结构
表ACC1 字段 M1,M2
表ACC2 字段 M1,M2

说明: 要在ACCES数据库的表ACC1中实现ACC1.M1=a.A1,ACC1.M2=b.B1
表ACC2中实现ACC2.N1=a.A2,ACC2.N2=b.B2
下面是我写的上部分,请你帮我完成下部分好吗?
CREATE procedure Test
@f_date datetime
as
SELECT a.A1,a.A2
,b.B1,b.B2
into #temp1
FROM a,b
where a.a1>@f_date
order by a.A1
以下部分请你给我填一下好吗?
...

yangkunjie 2001-11-29
  • 打赏
  • 举报
回复
如果你的机器里面有*.mdb的数据库文件的话,使用sql的导入/导出就能轻松搞定
pxq 2001-11-29
  • 打赏
  • 举报
回复
aa就是access中表名

select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db1.mdb;Persist Security Info=False')...t_class

我用的SQL Server2000,
应该可以用,可能数据源内容不一样。


pxq 2001-11-29
  • 打赏
  • 举报
回复
update OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db1.mdb;Persist Security Info=False')...aa
set price= b2.price
from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\db2.mdb;Persist Security Info=False')...aa b2
where ID =b2.ID3

这是update的一个例子。
kelly_leecn 2001-11-28
  • 打赏
  • 举报
回复
SQL SERVER: 交叉表查询出来的结果.
ACCESS : 将查询出来的结果放入几个表中.
请各位大虾仔细一点!
加载更多回复(1)

34,606

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧