--在SQL中操纵读取ACCESS数据库 SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\test.mdb';'admin';'' ,[表名])SELECT * FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\test.mdb";Jet OLEDB:Database Password=数据库密码')...[表名]/*--说明: c:\test.mdb 是你要操作的ACCESS数据库名,如果不在SQL服务器上,需要设置文件所在的目录为完全共享,并将目录改为网络目录 表名 是你要操作和ACCESS数据库中的表名 数据库密码 如果你的ACCESS数据库有密码,就要用第二种方式 其他部分不需要做任何变动如果是导入数据到现有表,对应的在: SELECT * 前加上: INSERT INTO 表 语句如果是导入数据并生成新表,对应的在: SELECT * 后加上: INTO 表 语句 --*/
--sql的作业最小时间间隔为1分钟,所以你要在sql的作业中每10秒处理一次数据的话,可以使用类似下面的存储过程 create proc p_process as declare @dt datetime set @dt=dateadd(minute,1,getdate()) while @dt>getdate() begin --处理ACCESS 数据 SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',[表名]) --处理完成后延时10秒 waitfor delay '00:00:10' end go
--在SQL中操纵读取ACCESS数据库
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\test.mdb';'admin';''
,[表名])SELECT *
FROM opendatasource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.mdb";Jet OLEDB:Database Password=数据库密码')...[表名]/*--说明:
c:\test.mdb 是你要操作的ACCESS数据库名,如果不在SQL服务器上,需要设置文件所在的目录为完全共享,并将目录改为网络目录
表名 是你要操作和ACCESS数据库中的表名
数据库密码 如果你的ACCESS数据库有密码,就要用第二种方式
其他部分不需要做任何变动如果是导入数据到现有表,对应的在: SELECT *
前加上: INSERT INTO 表
语句如果是导入数据并生成新表,对应的在: SELECT *
后加上: INTO 表
语句
--*/
create proc p_process
as
declare @dt datetime
set @dt=dateadd(minute,1,getdate())
while @dt>getdate()
begin
--处理ACCESS 数据
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',[表名]) --处理完成后延时10秒
waitfor delay '00:00:10'
end
go
企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句
exec p_process
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
谢谢;)
如果我自己写个程序读取ACCESS数据,然后插入到SQLServer相应的表中呢?