从访问数据库文件中选择并插入到SQL数据库

时间:2010-06-29 22:34:45

标签: sql sql-server ms-access

我有一个访问数据库文件(test.mdb),我需要编写一个存储过程,它将从test.mdb中的tblTest中选择一些记录,并将它们插入到我的sql数据库中的tbsqlTest中。 ==>我需要这样一个SP:

BEGIN
    select * into tblTest from [test.mdb].[tblTest]
    where (my condition)
END

2 个答案:

答案 0 :(得分:1)

如果您愿意在SQL Server上允许Ad Hoc Distributed Queries,您可以使用OPENDATASOURCE从MDB文件中检索数据。

SELECT * INTO dbo.TestAccess FROM OPENDATASOURCE(
'Microsoft.Jet.OLEDB.4.0',
'Data Source="\\server\share\somefolder\scratchpad.mdb"')...MyTable;

或者在创建目标表后,您可能更喜欢:

INSERT INTO dbo.TestAccess 
SELECT * FROM OPENDATASOURCE(
'Microsoft.Jet.OLEDB.4.0',
'Data Source="\\server\share\somefolder\scratchpad.mdb"')...MyTable;

为了让它们运行,我必须启用这样的Ad Hoc Distributed Queries:

sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE WITH OVERRIDE;
GO

我找到了配置说明on TechNet,但在我添加WITH OVERRIDE之前它不适用于我。

编辑:我在你的问题中添加了一个sql-server标签,因为我想知道我的建议是否有愚蠢的风险。也许将MDB设置为链接服务器是一种更安全的方式。我不知道。

答案 1 :(得分:-1)

如果你要经常这样做; 1.在设计视图中创建一个追加查询,执行您希望它执行的操作,包括筛选查询结果的条件。 2.在SQL视图中查看查询。 3.复制SQL文本 4.在表单上创建一个按钮。转到事件选项卡下的属性窗口,然后选择“单击”事件。单击省略号“...”并打开代码。

使用此代码:


将MyAppendString Dim as String

MyAppendString =“(代码行1)”& _                  “(代码第2行)”& _                  “(最后一行)”;

docmd.runsql MyAppendString

****************代码结束

每次单击该按钮,它都会执行追加查询,并使用您选择的条件进行硬编码。

如果您坚持以下任何一点,请告诉我。我会给你发送更详细的说明。