用openrowset()复制数据非常简单,但是也要遭遇到很多麻烦的问题。
比如:delete from OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:/my.mdb';'admin';'',DICT)
insert into
OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:/my.mdb';'admin';'',DICT)(field1,field2,field3)
select field1,field2,field3 from table1
可能问题1,
-- start Ad Hoc Distributed Queries
exec sp_configure 'allow updates',0
--如果为1,那么就不能用下面的配置,异常为:ad hoc update to system catalogs is not supported.
reconfigure --重新配置数据库,不用重启sqlserver
exec sp_configure 'show advanced options',1
--如果为0,则下面的无法配置
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
如果没有以上的配置,openrowset()将不可用。
参考:
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=327483
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=324989
可能问题2,
office 2007或者64位系统不可用
office 2007要用新的驱动:Microsoft.ACE.OLEDB.12.0
参考:
http://cajon.cnblogs.com/archive/2006/05/30/413408.html
http://topic.csdn.net/u/20070926/14/e17eb504-06e7-40fd-a132-3d25f27e5bcd.html
http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=355835
http://topic.csdn.net/u/20080513/21/e99c3d3d-0486-45a4-85cb-4dbb7d55d55a.html