使用4部分命名从SQL Server 2005插入DB2?

时间:2009-12-07 23:57:49

标签: sql-server-2005 odbc db2

我们在Linux和SQL Server 2005上使用DB2 9.1,以及IBM db2 odbc驱动程序。我们有一个设置为DB2的链接服务器。从SQL Server,我可以执行以下操作:

-- 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)

我收到“驱动程序无法”错误消息:

链接服务器“LINKDB2”的OLE DB提供程序“MSDASQL”返回消息“[IBM] [CLI驱动程序] CLI0150E驱动程序不支持.SQLSTATE = S1C00”。 Msg 7343,Level 16,State 2,Line 1 链接服务器“LINKDB2”的OLE DB提供程序“MSDASQL”无法INSERT INTO表“[LINKDB2] .. [DEV]。[TESTSYLVIAB]”。

有什么想法?

谢谢! 西尔维亚

1 个答案:

答案 0 :(得分:1)

4部分名称insert是一个分布式事务,DB2驱动程序需要注册它。请参阅Registering the IBM DB2 Driver for ODBC and CLI with the Microsoft DTC