我有一个从 SQL Server 2008 R2 到使用 OLE DB 提供程序“IBMDA400”的 DB2 数据库 (V4R5M0) 的链接服务器
链接服务器详细信息
EXEC master.dbo.sp_addlinkedserver
@server = N'JTEST', @srvproduct=N'IBM OLE DB Provider for DB2',
@provider=N'IBMDA400', @datasrc=N'TestName'
这工作正常:
SELECT * FROM OPENQUERY(JTEST, 'Select * from QSYS2.SYSCOLUMNS')
但是以下语句会产生错误:
SELECT * FROM OPENQUERY(JTEST, 'Select * from QSYS2.SYSCOLUMNS FETCH FIRST 10 ROWS ONLY')
错误
链接服务器“JTEST”的 LE DB 提供程序“IBMDA400”返回消息“SQL0199:不期望关键字 FETCH。有效标记:FOR WITH ORDER UNION OPTIMIZE。原因……:此处不期望关键字 FETCH。语法错误是在关键字 FETCH 处检测到。有效标记的部分列表是 FOR WITH ORDER UNION OPTIMIZE。此列表假定语句在意外关键字之前是正确的。错误可能在语句中较早,但语句的语法似乎是有效的至此,recovery...:检查指定关键字区域的SQL语句,可能缺少冒号或SQL定界符,SQL要求保留字作为名称时要进行定界,更正SQL语句并再次尝试请求。”。消息 7321,级别 16,状态 2,
我认为这是因为这个版本的 DB2 不支持 FETCH FIRST X ROWS ONLY?但是有没有办法在这个版本中只选择有限的记录集?