我有一个访问数据库文件(test.mdb),我需要编写一个存储过程,它将从 test.mdb 中的 tblTest 选择一些记录,并将它们插入到我的 sql 数据库中的 tbsqlTest 中。
==>我需要一个这样的SP:
BEGIN
select * into tblTest from [test.mdb].[tblTest]
where (my condition)
END
如果您愿意在 SQL Server 上允许临时分布式查询,则可以使用 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;
为了让它们运行,我必须启用临时分布式查询,如下所示:
sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE WITH OVERRIDE;
GO
我找到了配置说明在 TechNet 上,但它对我不起作用,直到我添加了“WITH OVERRIDE”。
Edit:我在你的问题中添加了一个 sql-server 标签,因为我想知道我的建议是否存在愚蠢的风险。也许将 MDB 设置为链接服务器是一种更安全的方法。我不知道。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)