我有一个访问数据库文件(test.mdb),我需要编写一个存储过程,它将从test.mdb中的tblTest中选择一些记录,并将它们插入到我的sql数据库中的tbsqlTest中。 ==>我需要这样一个SP:
BEGIN
select * into tblTest from [test.mdb].[tblTest]
where (my condition)
END
答案 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
****************代码结束
每次单击该按钮,它都会执行追加查询,并使用您选择的条件进行硬编码。
如果您坚持以下任何一点,请告诉我。我会给你发送更详细的说明。