使用4部分命名从SQL Server 2005插入到DB2?
问题描述:
我们在Linux和SQL Server 2005以及IBM db2 odbc驱动程序上使用DB2 9.1。我们有一个链接服务器设置为DB2。从SQL Server中,我能做到以下几点:使用4部分命名从SQL Server 2005插入到DB2?
-- I can create the new table fine
exec ('create table dev.TestSylviaB (field1 int) in TS_DEV_USER_XXXX')
at LinkDB2
-- I can use 4 part naming to select from it, as long as I skip the second part and put everything in upper case
select * from LINKDB2..DEV.TESTSYLVIAB
-- I can insert using Exec (which does pass through)
exec ('insert into DEV.TestSylviaB (field1) values (1)') at LinkDB2
-- HOWEVER I cannot insert via the standard 4 part naming, like this:
insert into LINKDB2..DEV.TESTSYLVIAB values (1)
我得到一个 “驱动程序不支持” 错误消息:
OLE DB提供程序 “MSDASQL” 链接服务器 “LINKDB2” 返回了消息“[IBM] [CLI Driver] CLI0150E Driver not able。SQLSTATE = S1C00“。 Msg 7343,Level 16,State 2,Line 1 链接服务器“LINKDB2”的OLE DB提供程序“MSDASQL”无法插入表“[LINKDB2] .. [DEV]。[TESTSYLVIAB]”。
有什么想法?
谢谢! Sylvia
答
4部分名称插入是分布式事务,DB2驱动程序需要注册到它。见Registering the IBM DB2 Driver for ODBC and CLI with the Microsoft DTC。
谢谢你Remus!这看起来不错。我现在无法真正测试它,但我非常有希望。当我们真正实现它时,我会编辑它。 – Sylvia 2009-12-12 00:19:20