插入OPENROWSET可以正常工作,直到将其包装在TRANSACTION语句中为止。
BEGIN TRAN
INSERT INTO OPENROWSET
('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=C:\SP_Upload\MailerUpload\test.xlsx;',
'select [Name], [ID] FROM [Data$]'
)
select 'Subject 1', '1'
union all
select 'Subject 2', '2'
COMMIT TRAN
IF @@ERROR<>0 ROLLBACK TRAN
以下是错误消息:
由于OLE DB提供程序无法执行请求的操作 链接服务器“(null)”的“ Microsoft.ACE.OLEDB.12.0”不支持 所需的交易界面。
猜猜这是一个古老的问题(根据被问到https://www.googleapis.com/admin/directory/v1/users的事实得出)。他(最初发布的人)似乎没有记录在案的答案,我也没有。:D
尝试了分布式事务,该事务也不起作用。
BEGIN DISTRIBUTED TRAN
-- rest of the code
感谢您的帮助! :)