The Microsoft OLE DB Provider for DB2, distributed with Microsoft® Host Integration Server 2000, allows Microsoft SQL Server™ 2000 distributed queries to query data in DB2 databases.
To create a linked server to access a DB2 database
This example shows how to use sp_addlinkedserver to create a linked server definition accessing a DB2 database:
EXEC sp_addlinkedserver @server = 'DB2SRV',
@srvproduct = 'Microsoft OLE DB Provider for DB2',
@catalog = 'SEATTLE',
@provider = 'DB2OLEDB',
@provstr =
'NetLib=SNA;NetAddr=;NetPort=;RemoteLU=SEATTLE;LocalLU=LOCAL;
ModeName=QPCSUPP;InitCat=SEATTLE;
Default Schema=WNW3XX;PkgCol=WNW3XX;TPName=;Commit=YES;
IsoLvl=NC;AccMode=;CCSID=37;PCCodePage=1252;BinAsChar=NO;
Data Source=Seattle_WNW3XX'
This example maps the SQL Server 2000 login SQLJoe to DB2 login DB2Joe:
EXEC sp_addlinkedsrvlogin 'DB2SRV', false, 'SQLJoe', 'DB2Joe', 'JoePwd'
After completing these steps, you can use the linked server name DB2SRV as the server name in four part names and as linked_server in the OPENQUERY function. For example:
SELECT *
FROM DB2SRV.SEATTLE.WNW3XX.DEPARTMENT
Or
SELECT *
FROM OPENQUERY(DB2SRV, 'SELECT * FROM SEATTLE.WNW3XX.EMP_ACT')
When the distributed queries against DB2 data sources involve NULL comparisons, use IS NULL or IS NOT NULL rather than comparison operators, such as =, <, or >. In addition, INSERT statements should supply values for all columns in a table even if certain columns in the table can be NULL or have default values.